python-3.x - Python 3:即使使用相同的数据,子图也不同
问题描述
我正在使用 python 3 seaborn 来生成以下子图。
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)
两个子图使用相同的数据,但给出不同的图。我不明白为什么。
解决方案
我认为问题出在您试图绘制太多行的事实。如果您减小数组的大小,您可以清楚地看到图表是相同的
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 无法绘制所有线,并选择一个随机(?)子集进行显示。
如果您要增加图形的大小以便可以绘制所有线条,那么您将再次获得相同的输出。
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)
推荐阅读
- c# - 没有从 ApplicationDbContext 到 Microsoft.EntityFrameworkCore.DbContext 的隐式引用转换
- javascript - 将两个值传递给超级账本结构查询的语法?
- kubernetes - Kubernetes 中的强制删除 pod 是否有任何问题
- android - 使用文件下载URI从firebase中删除文件?
- java - 为什么我们在 selenium 中将 URL 变量声明为私有静态字符串?
- java - 如何在项目的 lib 文件夹中而不是存储库中引用 Maven 中的 jars?
- azure - Microsoft Azure 子网阻止
- java - 列表过程中的无限循环
- vba - Excel VBA Userform 图片到工作表单元格
- c# - System.Runtime,版本=4.1.0.0 例外