python-3.x - 在 heartmap 上覆盖 seaborn stripplot
问题描述
我有以下数据集:
loads_ts_comb.head()
rte_nbr date perc_op_capacity is_overworked
0 35 2019-07-01 52.828054 NaN
1 35 2019-07-02 91.515837 NaN
2 35 2019-07-03 96.380090 NaN
3 35 2019-07-04 96.040724 NaN
4 35 2019-07-05 73.642534 NaN
loads_ts_comb.dtypes
rte_nbr int64
date datetime64[ns]
val1 float64
val2 float64
is_overworked
flag 取值 0/1/NaN。
使用 seaborn,我想为perc_op_capacity
(rte_nbr
作为 x 轴和date
y 轴)创建一个热图。然后我想在热图上覆盖一个散点图is_overworked
(再次rte_nbr
用作 x 轴和date
y 轴)。我试过这样做:
## combine df
loads_ts_comb = loads_ts_comb.loc[(loads_ts_comb.date >= '2019-07-01') & (loads_ts_comb.date <= '2019-07-31')]
## get df for scatter plot
df_ts = loads_ts_comb.drop(columns='perc_op_capacity')
df_ts.sort_values(by=['rte_nbr','date'], ascending=[True, False], inplace=True)
df_ts = df_ts.reset_index().drop(columns='index')
## get df for heatmap
df_loads = loads_ts_comb.drop(columns='is_overworked')
df_loads.sort_values(by=['rte_nbr','date'], inplace=True)
df_loads_piv = df_loads.pivot(index="date", columns="rte_nbr")
df_loads_piv.index = df_loads_piv.index.date
df_loads_piv.columns = [col[1] for col in df_loads_piv.columns.values]
## plotting
fig, ax = plt.subplots(figsize=(20,10))
ax = sns.heatmap(df_loads_piv, ax = ax, robust=True, square=True, center=90, cmap='coolwarm',
cbar_kws={"shrink":.3, "label": "% operating capacity"})
ax = sns.stripplot(x="rte_nbr", y="date", hue='is_overworked', palette="Set3", size=10, data=df_ts, ax=ax)
ax.set_title('Percentage operating capacity by Route (x) and Date(y)', fontsize=16, fontdict={})
plt.xticks(fontsize="10")
plt.xlabel(xlabel='Route', fontsize=14)
plt.ylabel(ylabel='Date', fontsize=14)
#set labelsize of the colorbar
cbar = ax.collections[0].colorbar
cbar.ax.tick_params(labelsize=10)
plt.show()
我已经尝试了很多东西,但无法让条形图覆盖在热图上。我当前的热图如下所示:
解决方案
推荐阅读
- c# - WPF - GridAnimation 但“MVVM 化”
- angular - 从 JSON 结构生成导航菜单项
- windows - 使用 PowerShell 的文件锁定机制
- python - 如何提供一个缓慢(每 12 小时)更新的字典作为另一个管道的侧输入
- symfony - 在链配置的命名空间中找不到类 xx
- html - 如何仅在双击时打开fancybox3?
- vb.net - 正在寻找连接到服务器并清除打印机打印队列的脚本?
- react-native - hashkey不匹配错误android faebook应用程序
- c# - 在 C# 中获取进程信息的权限
- julia - 如何从正在运行的会话中恢复 Julia 历史文件?