dev*_*ist 3 python heatmap axis-labels seaborn yaxis
seaborn.heatmap给出的默认设置
与 相比,这很奇怪matplotlib.pyplot.pcolormesh,它给出了一个从原点 0 开始向上移动的 y 轴,就像我们直观地想要的那样,因为它只对原点为 (0,0) 而不是 (0,9 )!
如何使y轴heatmap也从原点0而不是9开始向上移动?(当然,同时相应地重新定向数据)
我尝试转置输入数据,但这看起来不正确并且轴没有改变。我不认为需要围绕 y 轴进行翻转,而是对热图进行简单的旋转。
您可以使用以下命令翻转 y 轴ax.invert_yaxis():
import seaborn as sns
import numpy as np
np.random.seed(0)
sns.set_theme()
uniform_data = np.random.rand(10, 12)
ax = sns.heatmap(uniform_data)
ax.invert_yaxis()
Run Code Online (Sandbox Code Playgroud)
如果你想进行你描述的旋转,你必须首先转置矩阵:
import seaborn as sns
import numpy as np
np.random.seed(0)
sns.set_theme()
uniform_data = np.random.rand(10, 12)
ax = sns.heatmap(uniform_data.T)
ax.invert_yaxis()
Run Code Online (Sandbox Code Playgroud)
造成差异的原因是它们假设不同的坐标系。pcolormesh假设您想使用笛卡尔坐标访问元素,[x, y]并且它以您期望的方式显示它们。heatmap假设您想使用数组坐标 ie 访问元素[row, col],因此它提供的热图具有与将数组打印到控制台相同的布局。
为什么他们使用不同的坐标系?我会猜测,但我认为这是由于两个图书馆的年龄所致。matplotlib,特别是它的旧命令是来自 的端口Matlab,因此许多假设都是相同的。seaborn很晚才为Python开发,专门针对统计可视化,之后pandas就已经存在了。所以我猜测mwaskom选择的布局是为了复制将DataFrame其打印到屏幕上时的外观。
| 归档时间: |
|
| 查看次数: |
8231 次 |
| 最近记录: |