我想在热图中添加作为热图基础的相同数据的最小值、最大值、中值和中间值。是否有可能在Illustrator/.. a中不对图形进行后期处理的情况下完成此操作?
我的代码是:
# import of libraries
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# create dataframe
df_dynEFs = pd.DataFrame()
# read data and write into dataframe
df_dynEFs = pd.read_csv('dynEFs_data.csv')
df_dynEFs.head()
# pivot long table into wide table
df_dynEFs = df_dynEFs.pivot("Impact Factor Value", "Year", "Value")
# draw heatmap
fig, ax = plt.subplots()
ax = sns.heatmap(df_dynEFs, annot=False, linewidth=.5, cmap="viridis", vmin=0, vmax=43, ax=ax)
ax.invert_yaxis()
plt.yticks(rotation=0)
ax.tick_params(axis=u'x', which=u'both',length=0)
生成下图:
现在我想补充更多的数据,即最小值、最大值、中值和中位数。以下是一些补充信息的样本数据:
Year,min,max,medium,median
2015,0.15,0.7,0.53,0.56
2016,0.15,0.7,0.53,0.56
2017,0.15,0.7,0.53,0.56
2018,0.15,0.7,0.53,0.56
2019,0.15,0.7,0.53,0.56
2020,0.15,0.7,0.53,0.56
2021,0.15,0.7,0.53,0.56
左侧的y轴在视觉上应该与热图以及数据的附加信息相同(尽管,这也可以通过使用右侧的辅助y轴并随后隐藏该轴来实现?)。我想象它是这样的:
有人知道如何在Python中获得这个吗?提前感谢!
1条答案
按热度按时间iibxawm41#
可以使用
np.interp(values, tick_values, tick_label_values)
将数值转换为给定分类刻度的位置。