微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

2D 热图使用 python 处理已经分箱的数据

如何解决2D 热图使用 python 处理已经分箱的数据

我想为已经分箱的数据集获取 2D 热图(使用 python),这样我就有 x 和 y 的左右边缘,然后是我感兴趣的数据(我想要颜色映射)作为x 和 y 的函数

我在下面给出了我的数据集的示例:

x_min x_max y_min y_max 数据
1 2 0 0.1 10
2 3 0 0.1 13
3 4 0 0.1 12
4 5 0 0.1 20
1 2 0.1 0.2 9
2 3 0.1 0.2 17
3 4 0.1 0.2 22
4 5 0.1 0.2 30

我想绘制如下所示的 2D 热图: 2D Heatmap

这怎么可能,以便我得到一个热图,其中 Y 轴 从 0 到 0.2,X 轴 从 1 到 5,还有一个颜色条依赖于“数据”?

谢谢!

解决方法

plt.imshow() 可以如下使用:

import matplotlib.pyplot as plt
import pandas as pd
from io import StringIO

data_str = '''
x_min   x_max   y_min   y_max   Data
1   2   0   0.1 10
2   3   0   0.1 13
3   4   0   0.1 12
4   5   0   0.1 20
1   2   0.1 0.2 9
2   3   0.1 0.2 17
3   4   0.1 0.2 22
4   5   0.1 0.2 30'''
df = pd.read_csv(StringIO(data_str),delim_whitespace=True)

plt.imshow(df['Data'].to_numpy().reshape(2,4),origin='lower',extent=[1,5,0.2],aspect='auto',cmap='plasma')
plt.colorbar()
plt.xticks(range(1,6))
plt.yticks([0,0.1,0.2])
for row in df.itertuples(index=False):
    plt.text((row.x_min + row.x_max) / 2,(row.y_min + row.y_max) / 2,f"{row.Data:.0f}",color='navy' if row.Data > 22 else 'yellow',size=20,ha='center',va='center')
plt.show()

example heatmap

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?