控制页面布局#
Warning
本页中的许多功能是实验性的,可能会随时更改。
有几种方法可以使用Jupyter Book控制页面的布局。其中许多想法受到Edward Tufte布局CSS指南的启发。
让我们从一个示例图开始。您可以点击右侧的切换按钮查看生成它的代码。
Show code cell source
def make_fig(figsize):
from matplotlib import rcParams, cycler
import matplotlib.pyplot as plt
import numpy as np
plt.ion()
# 固定随机状态以确保可重复性
np.random.seed(19680801)
N = 10
data = [np.logspace(0, 1, 100) + .2 * np.random.randn(100) + ii for ii in range(N)]
data = np.array(data).T
cmap = plt.cm.coolwarm
rcParams['axes.prop_cycle'] = cycler(color=cmap(np.linspace(0, 1, N)))
from matplotlib.lines import Line2D
custom_lines = [Line2D([0], [0], color=cmap(0.), lw=4),
Line2D([0], [0], color=cmap(.5), lw=4),
Line2D([0], [0], color=cmap(1.), lw=4)]
fig, ax = plt.subplots(figsize=figsize)
lines = ax.plot(data)
ax.legend(custom_lines, ['Cold', 'Medium', 'Hot'])
make_fig(figsize=(10, 5))
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
Cell In[1], line 25
23 lines = ax.plot(data)
24 ax.legend(custom_lines, ['Cold', 'Medium', 'Hot'])
---> 25 make_fig(figsize=(10, 5))
Cell In[1], line 2, in make_fig(figsize)
1 def make_fig(figsize):
----> 2 from matplotlib import rcParams, cycler
3 import matplotlib.pyplot as plt
4 import numpy as np
ModuleNotFoundError: No module named 'matplotlib'
全宽内容#
有时,您希望使用所有可用的水平空间。这允许您突出显示特定的想法、可视化等。
全宽代码单元格#
您可以使用以下单元格元数据标签指定代码单元格的输入和/或输出应占用所有水平空间(包括右侧的边距):
{
"tags": [
"full-width",
]
}
See also
有关如何将单元格元数据添加到笔记本的提示,请参阅 为笔记本添加元数据。
例如,让我们在上面的边距中查看图形,并在设置为 full-width 的单元格中查看。我们将告诉Matplotlib使其更宽一些,以便我们可以利用额外的空间!
Show code cell source
make_fig(figsize=(20, 5))
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
Cell In[3], line 1
----> 1 make_fig(figsize=(20, 5))
Cell In[1], line 2, in make_fig(figsize)
1 def make_fig(figsize):
----> 2 from matplotlib import rcParams, cycler
3 import matplotlib.pyplot as plt
4 import numpy as np
ModuleNotFoundError: No module named 'matplotlib'
全宽Markdown内容#
如果你想要使你的Markdown内容全屏显示,你不能通过单元格标签来实现。 相反,你有几个选择:
使用带有
full-width类的{div}指令。 任何带有full-width类的内容将占据屏幕的全部宽度。例如,以下代码:````{div} full-width ```{note} 这里是一个将占据全屏宽度的注释 ```结果为: ````{div} full-width ```{note} 这里是一个将占据全屏宽度的注释 ``` ```` 有关`<div>`块的更多信息,请参见 [](custom-div-blocks)。为支持类的指令添加
full-width类。许多指令允许你直接向它们添加CSS类。例如,上面的
{note}指令允许这样做:```{note} :class: full-width 这里是一个将占据全屏宽度的注释 ```结果为:
Note
这里是一个将占据全屏宽度的注释
检查指令的文档,看看它是否支持添加你自己的类,或者如上所述使用
{div}指令。
混合使用边距和全屏内容
在混合使用边距和全屏内容时要小心。 有时这些可能会在视觉空间上相互冲突。你应该相对节制地使用它们,以便它们能够充分发挥突出信息的效果。