我试图在seaborn热图上标记一个位置(在这种情况下是沿着色图轴的最小值)。但是我想要标记的位置落在热图上的值之间,因为它是离散的并且以低于原始数据帧的分辨率绘制。我有一种感觉,我只需要使用相同的轴来正确绘图,但我似乎无法找到任何有效的东西!相反,我的散点图总是出现在左下角,或者根本不出现。
那么 - 如何在这个较低分辨率的热图上绘制一个表示原始更高分辨率数据帧中最小值的符号?
这是我的代码:
<table object-table
from-url = "http://beta.json-generator.com/api/json/get/DXXROxj"
data = "exportDataVariable"
display = "10"
headers = "Name, Eye color, Age,Balance,Company,Favorite Fruit"
fields = "name,eyeColor,age,balance,company,favoriteFruit"
sorting = "compound"
editable = "true"
resize="true"
drag-columns="true">
</table>
答案 0 :(得分:1)
根据评论,您只想从绝对最小值thick_df
绘制一颗星。您已将thick_df
的每个10x10部分平均分配到new_thick_df
。热图是从new_thick_df
创建的,但您希望将thick_df
的最小值绘制到此热图上。您必须首先通过展平thick_df
找到最小值,然后缩小尺寸,以便将它们转换为0到10之间的范围。我还为new_thick_df
的最小值绘制了一个红色星形
将此行:ax.scatter(thick_df.columns.argmin(), thick_df.index.argmin(), marker='*', s=100, color='yellow')
更改为这些行
idx_min_big = thick_df.values.flatten().argmin()
x_min_big, y_min_big = (idx_min_big % 100) / 10 , 10 - (idx_min_big // 100) / 10
ax.scatter(x_min_big, y_min_big, marker='*', s=100, color='yellow')
# get min of new_thick_df
min_idx = new_thick_df.values.flatten().argmin()
x_min, y_min = min_idx % 10 + .5, 9 - min_idx // 10 + .5
ax.scatter(x_min, y_min, marker='*', s=100, color='yellow')
只是为了证明thick_df
的最小值适用于此逻辑
x,y = idx_min_big // 100, idx_min_big % 100
thick_df.iloc[x, y]
输出
0.075901121550980832
获得最低
thick_df.values.flatten().min()
输出
0.075901121550980832