如何在不将值从底部排序的情况下更改绘图轴(y轴)

3

我已经编写了一段代码,用于从包含 40 行和 5 列的数据集中绘制热图。该数据从底部到顶部绘制。

如何更改我的数据绘图,使其从顶部开始而不是从底部开始?

我使用了 plt.invert_yaxis() 但是它显示了一个错误:

AttributeError: 'module' object has no attribute 'invert_yaxis'

这是我的代码:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

df = pd.read_csv("/home/jai/Desktop/jax.csv")
print df

plt.pcolor(df)

plt.invert_yaxis()

plt.yticks(np.arange(0.5, len(df.index), 1), df.index)
plt.xticks(np.arange(0.5, len(df.columns), 1), df.columns)
plt.show()

除此之外,它没有为每个单元格(值)显示轮廓线,我该如何添加呢?

1个回答

4

invert_yaxisAxes对象的一个方法。如果你使用matplotlib面向对象的方式,你可以在axes上调用invert_yaxis

fig,ax = plt.subplots(1)
ax.pcolor(df)

ax.invert_yaxis()

或者,您可以使用 plt.gca() 来获取当前坐标轴,然后调用 invert_yaxis()

plt.gca().invert_yaxis()

关于你的第二个问题: 尝试设置edgecolors参数,例如:
pcolor(df,edgecolors='k') 

每个单元格应该设置黑色轮廓线。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接