python热图_python – 使用matplotlib中的3D数据生成热图

我有一个函数returnValuesAtTime,它返回三个lists-x_vals,y_vals和swe_vals.所有三个列表具有相同的长度,并且swe_vals中的每个元素对应于来自x_vals的x值和来自y_vals的y值.我希望生成一个带有图例的热图,该图例使用(x,y)坐标和swe_vals作为强度.

我写了以下代码:

def plotValuesAtTimeMap(t):

x_vals,y_vals,swe_vals=returnValuesAtTime(t)

x_points=len(x_vals)

y_points=len(y_vals)

xx=np.linspace(x_vals[0],x_vals[-1],x_points)

yy=np.linspace(y_vals[0],y_vals[-1],y_points)

fig,ax=plt.subplots()

im=ax.pcolormesh(xx,yy,z)

fig.colorbar(im)

ax.axis('tight')

plt.show()

一旦使用returnValuesAtTime(t)获得三个列表,我将获取x_vals和y_vals的长度.然后我使用它们来生成x和y方向的间距,限制是x_vals和y_vals的第一个和最后一个元素.然后我尝试生成colormesh.但是这给了我一个没有值的空的colormesh.

可能出了什么问题?使用3D numpy数组而不是三个列表会解决问题吗?

每个列表的前10个元素是:

x_vals[0:10]

[439936.86573189893,

439936.86573189893,

439936.86573189893,

439936.86573189893,

439936.86573189893,

439936.86573189893,

439936.86573189893,

439936.86573189893,

439936.86573189893,

439936.86573189893]

y_vals[0:10]

[4514018.2797159087,

4513898.2797159087,

4513778.2797159087,

4513658.2797159087,

4513538.2797159087,

4513418.2797159087,

4513298.2797159087,

4513178.2797159087,

4513058.2797159087,

4512938.2797159087]

swe_vals[0:10]

[2.7520323,

2.7456229,

2.7456021,

2.745455,

2.7478349,

2.7445269,

2.7484877,

2.7524617,

2.75491,

2.7509627]

编辑:

我添加了一个散点图,显示下面的(x,y)网格范围:

x和y值在列表中,每个长度为6804.每个(x,y)点在单独的列表中具有对应的z值,其长度也是6804.为了澄清我希望实现的目标,我想生成一个热图,如图,其中z轴的大小由图上每个网格的颜色表示.类似于下面显示的内容:

在示例图中,所有z值都相同.因此整个网格空间的颜色相同.

编辑新结果图(基于成员CT朱的建议):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个Python+pandas+matplotlib数据分析与可视化案例。 这个案例涉及到一个名为"World Happiness Report"的数据集,该数据集包含了157个国家的幸福指数及其对应的各项因素数据,例如经济、社会、健康等。 首先,我们需要导入相关的库和数据集: ```python import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('world_happiness_report.csv') ``` 接下来,我们可以先看一下数据集的基本信息: ```python print(df.head()) print(df.info()) ``` 然后,我们可以通过绘制柱状图来比较不同国家的幸福指数: ```python plt.figure(figsize=(15, 10)) plt.bar(df['Country'], df['Happiness Score']) plt.xticks(rotation=90) plt.title('World Happiness Report') plt.xlabel('Country') plt.ylabel('Happiness Score') plt.show() ``` 接着,我们可以通过散点图来探究幸福指数与经济因素之间的关系: ```python plt.figure(figsize=(10, 8)) plt.scatter(df['Economy (GDP per Capita)'], df['Happiness Score']) plt.title('Happiness Score vs. GDP per Capita') plt.xlabel('Economy (GDP per Capita)') plt.ylabel('Happiness Score') plt.show() ``` 最后,我们可以通过热图来展示不同因素对幸福指数的影响情况: ```python factors = ['Economy (GDP per Capita)', 'Family', 'Health (Life Expectancy)', 'Freedom', 'Trust (Government Corruption)', 'Generosity'] corr_matrix = df[factors].corr() plt.figure(figsize=(10, 8)) plt.imshow(corr_matrix, cmap='coolwarm', interpolation='none') plt.colorbar() plt.xticks(range(len(factors)), factors, rotation=90) plt.yticks(range(len(factors)), factors) plt.title('Correlation Matrix') plt.show() ``` 以上就是一个简单的Python+pandas+matplotlib数据分析与可视化案例,希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值