私はあなたが時系列のためのヒートマップで何を意味するのか分からないが、データフレームのために、あなたは以下のように行うことができます:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from itertools import product
from string import ascii_uppercase
from matplotlib import patheffects
m, n = 4, 7 # 4 rows, 7 columns
df = pd.DataFrame(np.random.randn(m, n),
columns=list(ascii_uppercase[:n]),
index=list(ascii_uppercase[-m:]))
ax = plt.imshow(df, interpolation='nearest', cmap='Oranges').axes
_ = ax.set_xticks(np.linspace(0, n-1, n))
_ = ax.set_xticklabels(df.columns)
_ = ax.set_yticks(np.linspace(0, m-1, m))
_ = ax.set_yticklabels(df.index)
ax.grid('off')
ax.xaxis.tick_top()
を、必要に応じて、それぞれの真ん中に実際の値を印刷します広場には、読みやすくするためにいくつかの影で、あなたが行うことがあります。
path_effects = [patheffects.withSimplePatchShadow(shadow_rgbFace=(1,1,1))]
for i, j in product(range(m), range(n)):
_ = ax.text(j, i, '{0:.2f}'.format(df.iloc[i, j]),
size='medium', ha='center', va='center',
path_effects=path_effects)
を明確にせずにDEFIあなたのヒートマップは単純な2Dヒストグラムだと仮定します。だからあなたはDFをこれにリサンプリング/ピボットし、 'plt.imshow(df_all.values)'でそれをプロットしませんか? –
imshow()がヒストグラムのすべてのポイントを指定する必要があることを理解しているので、軸Yには5〜20個のアイテムしか必要ありません – szu
TimeSeriesの列にあるデータに従って、画像としてのプロットが動作し、軸ラベルを調整した場合、そのデータをx軸データとして正確に使用するようにmatplotlib関数を強制することに重点を置かないでください。 – ely