我正在使用seaborn的python 3生成以下子图。
import numpy as np; np.random.seed(1)
import seaborn as sns; sns.set()
uniform_data = np.random.rand(500, 12)
plt.subplot(2, 1, 1)
ax = sns.heatmap(uniform_data)
plt.subplot(2, 1, 2)
ax = sns.heatmap(uniform_data)
两个子图使用相同的数据,但给出不同的图。我不明白为什么。
答案 0 :(得分:1)
我认为问题出在您试图绘制过多线条的事实。如果减小数组的大小,则可以清楚地看到图形是相同的
import numpy as np; np.random.seed(1)
import seaborn as sns; sns.set()
uniform_data = np.random.rand(10, 12)
plt.subplot(2, 1, 1)
ax = sns.heatmap(uniform_data)
plt.subplot(2, 1, 2)
ax = sns.heatmap(uniform_data)
但是当您试图在图形的小空间中绘制500条线时,matplotlib无法绘制所有线,而是选择一个random(?)子集进行显示。
如果您要增加图形的大小以便可以绘制所有线条,那么您将再次获得相同的输出。
import numpy as np; np.random.seed(1)
import seaborn as sns; sns.set()
uniform_data = np.random.rand(500, 12)
plt.figure(figsize=(10,30))
plt.subplot(2, 1, 1)
ax = sns.heatmap(uniform_data)
plt.subplot(2, 1, 2)
ax = sns.heatmap(uniform_data)
答案 1 :(得分:0)