我将尝试从包含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()
它有效,并有这个热图:
我想改变y轴的格式,我的意思是,数字45是向上的,1是低的。并且也希望两个轴格式没有点和小数,我的意思是,数字是1,3,45等,而不是1.0,3.0等。
我尝试过ylim,xlim和xticks,但是效果不好,超出了数字的想法。
你能帮帮我吗?您是否知道我必须更改或添加到我的代码中?感谢您的支持。答案 0 :(得分:0)
好吧,我把函数plt.gca()。reverse_yaxis()放在反向y轴上,用函数把两个轴都用整数表示 ax.xaxis.set_major_formatter(FormatStrFormatter('%0.0f'))最后,我用函数MaxNLocator修复了ticks。
非常感谢
祝你好运