Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在matplotlib中绘制左右两侧都有标签的热图_Python_Matplotlib_Matplotlib Basemap - Fatal编程技术网

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
的填充。如果愿意,可以更改该值。