Python 如何在matplotlib中绘制左右两侧都有标签的热图
已更新 我已经写下了一个类似下面给出的代码Python 如何在matplotlib中绘制左右两侧都有标签的热图,python,matplotlib,matplotlib-basemap,Python,Matplotlib,Matplotlib Basemap,已更新 我已经写下了一个类似下面给出的代码 import pandas as pd import matplotlib.pyplot as plt import numpy as np df = pd.read_csv("data_1.csv",index_col="Group") print df fig,ax = plt.subplots(1) heatmap = ax.pcolor(df)######## ax.pcolor(df,edgecol
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.read_csv("data_1.csv",index_col="Group")
print df
fig,ax = plt.subplots(1)
heatmap = ax.pcolor(df)########
ax.pcolor(df,edgecolors='k')
cbar = plt.colorbar(heatmap)##########
plt.ylim([0,12])
ax.invert_yaxis()
locs_y, labels_y = plt.yticks(np.arange(0.5, len(df.index), 1), df.index)
locs_x, labels_x = plt.xticks(np.arange(0.5, len(df.columns), 1), df.columns)
ax.set_xticklabels(labels_x, rotation=10)
ax.set_yticklabels(labels_y,fontsize=10)
plt.show()
它采用如下给定的输入,并用左下两侧的标签绘制一个热图
GP1,c1,c2,c3,c4,c5
S1,21,21,20,69,30
S2,28,20,20,39,25
S3,20,21,21,44,21
我还想在数据的右侧添加额外的标签,如下图所示,并想用三面标签绘制热图。左右和底部
GP1,c1,c2,c3,c4,c5
S1,21,21,20,69,30,V1
S2,28,20,20,39,25,V2
S3,20,21,21,44,21,V3
我应该在代码中加入哪些更改
请帮助..您可以在绘图右侧创建一个新轴,名为
twinx
。然后,您需要以与第一个轴相同的方式调整该轴
u = u"""GP1,c1,c2,c3,c4,c5
S1,21,21,20,69,30
S2,28,20,20,39,25
S3,20,21,21,44,21"""
import io
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df= pd.read_csv(io.StringIO(u),index_col="GP1")
fig,ax = plt.subplots(1)
heatmap = ax.pcolor(df, edgecolors='k')
cbar = plt.colorbar(heatmap, pad=0.1)
bx = ax.twinx()
ax.set_yticks(np.arange(0.5, len(df.index), 1))
ax.set_xticks(np.arange(0.5, len(df.columns), 1), )
ax.set_xticklabels(df.columns, rotation=10)
ax.set_yticklabels(df.index,fontsize=10)
bx.set_yticks(np.arange(0.5, len(df.index), 1))
bx.set_yticklabels(["V1","V2","V3"],fontsize=10)
ax.set_ylim([0,12])
bx.set_ylim([0,12])
ax.invert_yaxis()
bx.invert_yaxis()
plt.show()
您尝试了什么,遇到了什么问题?请参阅和。我已更新了问题。是否有任何方法可以移动或设置颜色栏的位置,因为在我的情况下,右侧的原始标签与参考颜色栏重叠。在上面的代码中,选择了
pad=0.1
的填充。如果愿意,可以更改该值。