在Jupyter notebook中绘图后如何抑制文本输出

5

如果你想使用 mpl.rcParams.update(params) 在 Python 中更新绘图参数,它会打印出与你拥有的图形数量相等的数组。比如,如果你使用 hist 绘制了 12 个参数,你将得到一个由 12 行组成的数组,例如:

array([[<matplotlib.axes._subplots.AxesSubplot object at 0x1a1d27fc50>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1a1d6292e8>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1a1d63b6d8>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x1a1e922c50>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1a1e955208>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1a1e97c780>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x1a1e9a3cf8>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1a1e9d52e8>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1a1e9d5320>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x1a1ea25da0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1a1ea55358>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x1a1ea7d8d0>]],
      dtype=object)

我该如何避免/抑制在Jupyter Notebook中打印此内容。

示例代码:

params = {'axes.titlesize':'60', 'xtick.labelsize':'24', 'ytick.labelsize':'24'} 
mpl.rcParams.update(params);
data.hist(figsize=(50, 30), bins=10)

1
显示的文本实际上是由您的 data.hist() 命令生成的,与 rcParams 没有任何关系。 - Diziet Asahi
4个回答

6
更好的选择是在单元格的末尾调用plt.show()。这样即使将笔记本转换为独立的Python脚本,您的图形也会显示出来。

3

尝试在生成此输出的Python命令末尾放置分号。如果这样不起作用,请在单元格开头放置%%capture


在Python中,我从未听说过分号可以工作 :) 实际上,捕获会压制块中的整个绘图,而不是绘图。 - Soyol
1
好的,这不是Python,而是Jupyter笔记本。你试过分号吗? - najeem
1
分号应该起作用。你在调用hist的时候是否放置了它? - busybear

0
最简单的防止图表上方出现虚假文本的方法是在代码块末尾添加


None

解释:Jupyter 捕获代码单元格中最后一行的结果并将其排版为“输出”。即使您的预期输出仅为图形,这也是正确的。虽然 Matplotlib 函数通常用于修改图形的“副作用”,但其中许多函数也返回句柄数组,Jupyter 会将它们粘贴到“输出”单元格中。添加一行明确没有结果(None)的代码将导致 Jupyter 将“无结果”粘贴到“输出”单元格中。


0
我发现这也很有用: data.hist(figsize=(50, 30), bins=10)[2] 希望这能帮到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接