我似乎理解了Matplotlib
中的subplots和ax选项是如何工作的,但我只是做了一个图形测试,结果并没有像预期的那样工作,这表明我仍然不太理解语句的语法。
方案如下;我应该得到2个单独的图,但只有1个,似乎覆盖了2个数据集。
[NOTE:代码必须使用sns.histplot
; p1
和p2
数据不对应于要呈现的数据的实际情况。]
你能给我解释一下我的打字错误是什么吗?
p1 = [7.86706728, 2.07023424, 8.59099644, 7.07850226, 9.79575806]
p2 = [1.48705512, 0.3142216 , 0.3407479 , 0.32947036, 0.32947036]
fig, ax = plt.subplots(1, 2, figsize = (8,3), tight_layout = True)
ax[0] = sns.histplot(data = None, x = p1, bins = 25, discrete = False, shrink = 1.0,
stat = "probability", element = "bars", color = "green", kde = False)
ax[0].set_title("p1", fontsize = '15')
ax[0].set_xlabel("p1" , fontsize = '15')
ax[0].set_ylabel("Probability", fontsize = '15')
ax[1] = sns.histplot(data = None, x = p2, bins = 25, discrete = False, shrink = 1.0,
stat = "probability", element = "bars", color = "green", kde = False)
ax[1].set_title("p2", fontsize = '15')
ax[1].set_xlabel("p2" , fontsize = '15')
ax[1].set_ylabel("Probability", fontsize = '15')
plt.show()
错误输出:
1条答案
按热度按时间j9per5c41#
您的问题在于您使用海运直方图绘图的方式。从其文档(here)中,您可以提供一个预先存在的轴作为参数。如果不提供,seaborn将调用plt.gca()(获取当前轴)。由于您没有在代码中提供ax作为参数,所以sns.histplot()的两次调用都将调用plt.gca()。但是,当前轴是
ax[1]
,因此它是两个直方图调用所选择的轴。所以,你的第一个电话应该是:
第二个: