python – X Y Z数组到热图
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – X Y Z数组到热图,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1810字,纯文字阅读大概需要3分钟。
内容图文
我无法找到这个问题的共识答案或符合我需要的问题 – 我在文本文件的三列中有数据:X,Y和Z.列是制表符分隔的.我想用Python制作这些数据的热图表示,其中X和Y位置用Z中的值着色,其范围从0到1(X和Y的离散概率).我正在尝试seaborn的热图包和matplotlib的pcolormesh,但不幸的是这些需要2D数据阵列.
对于常数y,我的数据通过X从1到37运行,然后在y中迭代0.1. y max基于数据集波动,但ymin始终为0.
[X Y Z] row1 [1 … 37 0.0000 Zvalue],row2 [1 … 37 0.1000 Zvalue]等
import numpy as np
from numpy import *
import pandas as pd
import seaborn as sns
sns.set()
df = np.loadtxt(open("file.txt", "rb"), delimiter="\t").astype("float")
有关后续步骤的提示吗?
解决方法:
如果我理解正确,你有三列X和Y表示值Z的位置.
请考虑以下示例.有三列:X和Y包含位置信息(在这种情况下为类别),Z包含用于着色热图的值.
x = np.array(['a','b','c','a','b','c','a','b','c'])
y = np.array(['a','a','a','b','b','b','c','c','c'])
z = np.array([0.3,-0.3,1,0.5,-0.25,-1,0.25,-0.23,0.25])
然后我们从这些列创建一个数据框并转置它们(因此x,y和z实际上成为列).给出列名并确保Z_value是一个数字.
df = pd.DataFrame.from_dict(np.array([x,y,z]).T)
df.columns = ['X_value','Y_value','Z_value']
df['Z_value'] = pd.to_numeric(df['Z_value'])
产生了这个数据帧.
X_value Y_value Z_value
0 a a 0.30
1 b a -0.30
2 c a 1.00
3 a b 0.50
4 b b -0.25
5 c b -1.00
6 a c 0.25
7 b c -0.23
8 c c 0.25
由此您无法创建热图,但是通过调用df.pivot(‘Y_value’,’X_value’,’Z_value’),您可以将数据框转移到可用于热图的表单.
pivotted= df.pivot('Y_value','X_value','Z_value')
结果数据框看起来像这样.
X_value a b c
Y_value
a 0.30 -0.30 1.00
b 0.50 -0.25 -1.00
c 0.25 -0.23 0.25
然后,您可以将数据转移到sns.heatmap以创建热图.
sns.heatmap(pivotted,cmap='RdBu')
导致这个热图.
您可能需要对代码进行一些调整以满足您的精确需求.但由于我没有示例数据,我需要自己做一个例子.
内容总结
以上是互联网集市为您收集整理的python – X Y Z数组到热图全部内容,希望文章能够帮你解决python – X Y Z数组到热图所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。