0
我試圖使用matplotlib
使用相同的代碼創建多個熱圖。當然,所有這些熱圖的數據都不相同。正因爲如此,熱點圖上的顏色強度是不同的。有沒有一種方法可以確保強度範圍保持不變?我所有的熱點地圖值都介於0和1之間。因此,我希望heatmap1
中的值0.2
的顏色看起來與的顏色的顏色完全相同,即使這兩個熱圖可能具有不同的範圍。使用相同的梯度生成多個熱圖
我很抱歉這個問題有些令人困惑,但我不知道如何更好地解釋它。
下面是我使用生成熱圖的代碼:
from matplotlib import pyplot as plt
def show_values(pc, fmt="%.2f", **kw):
'''
Heatmap with text in each cell with matplotlib's pyplot
Source: http://stackoverflow.com/a/25074150/395857
By HYRY
'''
# from itertools import izip
try:
# Python 2
from itertools import izip
except ImportError:
# Python 3
izip = zip
pc.update_scalarmappable()
ax = pc.get_axes()
for p, color, value in izip(pc.get_paths(), pc.get_facecolors(), pc.get_array()):
x, y = p.vertices[:-2, :].mean(0)
if np.all(color[:3] > 0.5):
color = (0.0, 0.0, 0.0)
else:
color = (1.0, 1.0, 1.0)
ax.text(x, y, fmt % value, ha="center", va="center", color=color, **kw)
df= pd.read_csv("filepath", header=None)
fig, ax = plt.subplots(figsize=(20, 10))
heatmap = plt.pcolor(df,cmap=matplotlib.cm.Blues)
ax.set_yticks(np.arange(df.shape[0]) + 0.5, minor=False)
ax.set_xticks(np.arange(df.shape[1]) + 0.5, minor=False)
ax.set_xticklabels(xlabels, minor=False, rotation=45)
ax.set_yticklabels(ylabels, minor=False)
plt.ylim((0, df.shape[0]))
plt.gca().invert_yaxis()
plt.title("plot title")
show_values(heatmap)
plt.show()
任何幫助將非常感激。
就像一個魅力的工作這麼多的指定,謝謝。 – Patthebug