如何更改热图中的轴?

时间:2018-01-13 14:49:59

标签: dictionary matplotlib format axis heat

我将尝试从包含3列的文件中执行热图,我的数据格式为:

1 3 65.0987

2 9 49.34

5 7 0.00056

。 。

。 。

3 1 65.0987等..

但我把它分成3个文件。所以我正在使用下一个代码:

from numpy import *
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

with open("1.txt") as f:
            lstx = [int(x) for x in f.read().split()]

with open("2.txt") as f:
            lsty = [int(x) for x in f.read().split()]

with open("3.txt") as f:
            lstz = [float(x) for x in f.read().split()]

x=np.array(lstx)
y=np.array(lsty)
z=np.array(lstz)

df = pd.DataFrame.from_dict(np.array([y,x,z]).T)
df.columns = ['X_value','Y_value','Z_value']
df['Z_value'] = pd.to_numeric(df['Z_value'])

pivotted= df.pivot('Y_value','X_value','Z_value')

sns.heatmap(pivotted,cmap='Paired')
plt.show()

它有效,并有这个热图:

enter image description here

我想改变y轴的格式,我的意思是,数字45是向上的,1是低的。并且也希望两个轴格式没有点和小数,我的意思是,数字是1,3,45等,而不是1.0,3.0等。

我尝试过ylim,xlim和xticks,但是效果不好,超出了数字的想法。

你能帮帮我吗?您是否知道我必须更改或添加到我的代码中?感谢您的支持。

1 个答案:

答案 0 :(得分:0)

好吧,我把函数plt.gca()。reverse_yaxis()放在反向y轴上,用函数把两个轴都用整数表示 ax.xaxis.set_major_formatter(FormatStrFormatter('%0.0f'))最后,我用函数MaxNLocator修复了ticks。

非常感谢

祝你好运