为什么要从直方图中打印垃圾箱? 分号不应该压制吗?
在[1]中
import numpy as np
import matplotlib.pyplot as plt
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all";
在[2]中
%matplotlib inline
data ={'first':np.random.rand(100),
'second':np.random.rand(100)}
fig, axes = plt.subplots(2)
for idx, k in enumerate(data):
axes[idx].hist(data[k], bins=20);
答案 0 :(得分:1)
您已设置InteractiveShell.ast_node_interactivity = "all";
,因此您已将所有节点设置为启用了交互功能。因此,您获得data = {..}
并且;
仅适用于最后顶级表达式,axes[idx].hist(data[k], bins=20);
不是顶级表达式,因为它嵌套在for
中,最后一个顶级节点是for
,这是一个语句。
只需添加最后一个no-op语句,并以;
%matplotlib inline
data ={'first':np.random.rand(100),
'second':np.random.rand(100)};
fig, axes = plt.subplots(2);
for idx, k in enumerate(data):
axes[idx].hist(data[k], bins=20)
pass; # or None; 0; "foo"; ...
你没有任何产出。
使用codetransformer %%ast
魔法快速查看表达式的精确度。
答案 1 :(得分:-1)
如果您阅读文档,您将看到它返回的确切内容 - 下面描述的三项元组。您可以通过放置一个?在笔记本中显示它?在调用直方图结束时。看起来您InteractiveShell
正在显示它。通常,是的,分号会抑制输出,虽然在循环内部它是不必要的。
返回
n :数组或数组列表 直方图箱的值。请参阅标注和权重 有关可能的语义的描述。如果输入 x 是 数组,那么这是一个长度 nbins 的数组。如果输入是 序列数组
[data1, data2,..]
,然后这是一个列表 具有每个数组的直方图值的数组 以相同的顺序。bins :数组 箱子的边缘。长度nbins + 1(nbins左边和右边 最后一个垃圾箱的边缘)。即使是多个数据,也始终是单个阵列 集合被传入。
补丁:列表或列表列表 用于创建直方图的单个补丁的静默列表 或多个输入数据集的列表。