<jupyter_start><jupyter_text>Jupyter 博文发布教程> 如何在 fastpages 上发布 ipynb 格式的博文- toc:true- branch: master- badges: true- comments: true- categories: [jupyter, fastpages]  基本设置fastpages 会将存放在 `_notebooks` 中的 jupyter notebook 自动转换成博文，因此你应该将所有的 jupyter notebook 放在该文件夹下。fastpages 会将存放在 `_post` 文件夹内的 markdown 文章和 `_word` 中的 word 文章自动转换成博文。因此你的博文应该存放在这三个文件夹内。所有的博文遵循同一套命名规范，即 `YYYY-MM-DD-filename.ext`，如本篇 notebook 教程的文件名为 `2020-04-04-jupyter-tutorial.ipynb`  FrontMatterFrontMatter 位于每篇 notebook 中的第一个 cell 中，其作用是每篇博文的配置文件，它控制着每篇博文该如何展现内容。```markdown Title> Awesome summary- toc:true- branch: master- badges: true- comments: true- author: <NAME> & <NAME>- categories: [fastpages, jupyter]```有关 FrontMatter 的详细配置和说明可以参考 [fastpages 说明](https://github.com/fastai/fastpagescustomizing-blog-posts-with-front-matter)  格式本文仅介绍 fapages 中的一些亮点功能，关于 jupyter notebook 的使用请自行寻找相关教程在 cell 开头如果加上 `hide` ，fastpages 会隐藏该 cell 的输入和输出在 cell 开头如果加上 `hide_input` ，fastpages 会隐藏该 cell 的输入<jupyter_code>#hide_input
print('The comment #hide_input was used to hide the code that produced this.')<jupyter_output><empty_output><jupyter_text>在 cell 开头如果加上 `collapse-hide` ，fastpages会默认折叠该细胞，但可以手动展开在 cell 开头如果加上 `collapse-show` ，fastpages会默认展开该细胞，但可以手动折叠<jupyter_code>#collapse-hide
import pandas as pd
import plotly.express as px
# from IPython.display import HTML
import chart_studio.plotly as py
#collapse-show
cars = 'https://vega.github.io/vega-datasets/data/cars.json'
movies = 'https://vega.github.io/vega-datasets/data/movies.json'
sp500 = 'https://vega.github.io/vega-datasets/data/sp500.csv'
stocks = 'https://vega.github.io/vega-datasets/data/stocks.csv'
flights = 'https://vega.github.io/vega-datasets/data/flights-5k.json'<jupyter_output><empty_output><jupyter_text>可视化显示在 [fastpages 官网](https://fastpages.fast.ai/jupyter/2020/02/20/test.htmlInteractive-Charts-With-Altair) 中介绍了如何用 Altair 显示可交互图表的操作，其实不只 Altair， fastapages 支持多种可视化框架。需要注意的是，在最后显示阶段需要用 `HTML(fig.to_html())` 代替平常 `fig.show()`  plotly<jupyter_code>print(px.data.iris.__doc__)
px.data.iris().head()
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species", marginal_y="rug", marginal_x="histogram")
# HTML(fig.to_html())
py.iplot(fig, filename="tutorial-histogram")
df = px.data.gapminder()
fig = px.scatter(df, x="gdpPercap", y="lifeExp", animation_frame="year", animation_group="country",
           size="pop", color="continent", hover_name="country", facet_col="continent",
           log_x=True, size_max=45, range_x=[100,100000], range_y=[25,90])
# HTML(fig.to_html())
py.iplot(fig, filename="tutorial-sactter")
df = px.data.election()
fig = px.line_3d(df, x="Joly", y="Coderre", z="Bergeron", color="winner", line_dash="winner")
# HTML(fig.to_html())
py.iplot(fig, filename="tutorial-line-3d")<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.146011396011396, 'fraction_numerical': 0.014245014245014245, 'mean_word_length': 6.912676056338028, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 17, 'https://': 7, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '130007', 'license': 'Apache-2.0', 'n_tokens_mistral': 1340, 'n_tokens_neox': 1374, 'n_words': 189, 'path': '_notebooks/2020-04-05-jupyter-tutorial.ipynb', 'repo_name': 'invisprints/blog', 'size': '2821'}