Rlang-QQ-0.1.1.0: examples/ihaskell2.ipynb
{
"metadata": {
"language": "haskell",
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Multiple plots with Rlang-QQ\n",
"An example of `Rlang-QQ-0.1.1`, which supports multiple figures.\n",
"\n",
"First a pile of imports needed:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
":set -XQuasiQuotes -XTupleSections\n",
"import RlangQQ\n",
"import System.Directory\n",
"import System.FilePath\n",
"import Data.Maybe\n",
"import Data.List\n",
"import Text.Read\n",
"import qualified Data.ByteString as B\n",
"import qualified Data.ByteString.Char8 as Char\n",
"import qualified Data.ByteString.Base64 as Base64\n",
"import IHaskell.Display\n",
"import IHaskell.Display.Blaze () -- to confirm it's installed\n",
"import qualified Text.Blaze.Html5 as H\n",
"import qualified Text.Blaze.Html5.Attributes as H\n",
"import Data.Monoid\n",
"import Data.Char\n",
"import Control.Monad\n",
"import Data.Ord\n",
"import Data.List.Split\n",
"import Text.XFormat.Show hiding ((<>))"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Rlang-QQ saves intermediate files into `Rtmp/`.\n",
"Figures from the first `[r| quasi quote |]` go into\n",
"`Rtmp/fig1`. Figures from the next one go into `Rtmp/fig2`.\n",
"\n",
"So, taking a look at the filesystem from the notebook allows\n",
"finding out which plots should be loaded."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"chunksWithPlots :: IO [Int]\n",
"chunksWithPlots = do\n",
" fs <- mapMaybe (readMaybe <=< stripPrefix \"fig\" . takeBaseName)\n",
" <$> getDirectoryContents \"Rtmp\"\n",
" fs' <- forM fs $ \\f-> fmap (,f) (getModificationTime (\"Rtmp/fig\"++show f))\n",
" return $ map snd $ sortBy (flip (comparing fst)) fs'\n",
"\n",
"\n",
"getPlotNames :: IO [String]\n",
"getPlotNames = do\n",
" ns <- chunksWithPlots\n",
" case ns of\n",
" [] -> return []\n",
" n : _ -> \n",
" map (\\t -> \"Rtmp/fig\"++show n </> t) . filter (`notElem` [\"..\",\".\"])\n",
" <$> getDirectoryContents (showf (\"Rtmp/fig\"%Int) n)\n",
" \n",
"getCaptions :: IO [String]\n",
"getCaptions = do\n",
" n : _ <- chunksWithPlots\n",
"\n",
" f <- readFile (showf (\"Rtmp/raw\"%Int%\".md\") n)\n",
" let end s = case splitOn \"](\" s of\n",
" a:_ -> Just a\n",
" _ -> Nothing\n",
" isBoring s = maybe False (all isDigit)\n",
" (stripPrefix \"plot of chunk unnamed-chunk-\" s)\n",
" return $ \n",
" map (\\x -> if isBoring x then \"\" else x) $\n",
" mapMaybe (end <=< stripPrefix \"![\") (lines f)\n",
"\n",
"rPlots :: IO [DisplayData]\n",
"rPlots = do\n",
" ns <- getPlotNames\n",
" cs <- getCaptions\n",
" imgs <- forM (ns `zip` cs) $ \\(n,c) -> do\n",
" e <- Base64.encode <$> B.readFile n\n",
" return $ H.img H.! H.src (H.unsafeByteStringValue\n",
" (Char.pack \"data:image/png;base64,\" <> e))\n",
" <> if null c then mempty\n",
" else H.p (H.toMarkup c)\n",
" display (mconcat imgs)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"[r| plot(1:10)\n",
" plot(sin(1:10), type='l') |]\n",
"getPlotNames\n",
"rPlots"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"text": [
"[\"Rtmp/fig1/unnamed-chunk-11.png\",\"Rtmp/fig1/unnamed-chunk-12.png\"]"
]
},
{
"html": [
"<img src=\"data:image/png;base64,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\">\n",
"<img src=\"data:image/png;base64,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\">\n"
],
"metadata": {},
"output_type": "display_data",
"text": [
"<img src=\"data:image/png;base64,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\">\n",
"<img src=\"data:image/png;base64,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\">"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The obligatory Fibonacci"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fibs = 0:1: zipWith (+) fibs (drop 1 fibs)\n",
"\n",
"[r| plot(1:20, $(take 20 $ map fromIntegral fibs :: [Double]),\n",
" main='rabbit population',\n",
" ylab='', xlab='') |]\n",
"rPlots"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<img src=\"data:image/png;base64,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\">\n"
],
"metadata": {},
"output_type": "display_data",
"text": [
"<img src=\"data:image/png;base64,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\">"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
":! $PWD"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<span class='mono'>/bin/sh: 1: /home/aavogt: Permission denied\n",
"</span><span class='err-msg'>Process exited with error code 126</span>"
],
"metadata": {},
"output_type": "display_data",
"text": [
"/bin/sh: 1: /home/aavogt: Permission denied\n",
"\n",
"Process exited with error code 126"
]
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}