【发布时间】:2016-11-21 14:12:34
【问题描述】:
我有一个未堆叠时的 DataFrame。
Start Date 2016-07-11 2016-07-12 2016-07-13
Period
0 1.000000 1.000000 1.0
1 0.684211 0.738095 NaN
2 0.592105 NaN NaN
我试图在 Seaborn 中将其绘制为热图,但它给了我意想不到的结果。
这是我的代码:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(np.array(data), columns=['Start Date', 'Period', 'Users'])
df = df.fillna(0)
df = df.set_index(['Start Date', 'Period'])
sizes = df['Users'].groupby(level=0).first()
df = df['Users'].unstack(0).divide(sizes, axis=1)
plt.title("Test")
sns.heatmap(df.T, mask=df.T.isnull(), annot=True, fmt='.0%')
plt.tight_layout()
plt.savefig(table._v_name + "fig.png")
我希望它不会重叠,并且侧面没有 6 个热图例。另外,如果可能的话,如何修复日期以使其仅显示 %Y-%m-%d?
【问题讨论】:
-
意外结果不是错误。
-
用
data变量很难重现这个 -
请展示一个完整的示例,否则我们无法为您提供帮助。根据您示例中的情节和缩进,看起来您正在循环(并且没有在每个循环中创建一个新图形,因此是您的问题),但是不得不猜测您在做什么是浪费我们的时间.
标签: python pandas matplotlib heatmap seaborn