首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用热图绘制2个变量

用热图绘制2个变量
EN

Stack Overflow用户
提问于 2016-08-15 10:49:09
回答 2查看 4.8K关注 0票数 2

我在python 3上,我有两个变量x和y,其中x从1到5,y从0.03到0.7,然后我有一个取x和y并生成标量数的方法。我想用x作为x轴,y作为y轴和一个颜色键来表示方法f(x,y)。这是怎么做的?我试过使用热图,但是罐头似乎能让它工作,因为范围不能得到令人愉快的x和y。

代码语言:javascript
复制
import numpy as np
import numpy.random
import matplotlib.pyplot as plt


x = np.random.randn(8873)
y = np.random.randn(8873)

heatmap, xedges, yedges = np.histogram2d(x, y, bins=50)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]

plt.clf()
plt.imshow(heatmap, extent=extent)
plt.show()

但是我想用键表示f(x,y)的颜色。

EN

回答 2

Stack Overflow用户

发布于 2016-10-07 14:24:49

如果你从二维向量开始,xy在二维点网格上计算xy的函数,首先要用numpy.meshgrid生成二维网格。

代码语言:javascript
复制
from numpy import linspace, meshgrid
x, y = linspace(1, 5, 41), linspace(0.03, 0.70, 68)
X, Y = meshgrid(x, y)

不知怎的,看到2网格.一个只包含x值,另一个只包含y值(您只需打印XY以便自己查看)。

在这两个网格可用的情况下,您可以计算一个结果网格,但这只在您使用numpyufuncs时才能工作。

代码语言:javascript
复制
def f(x, y):
    from numpy import sin, sqrt
    return sin(sqrt(x*x+y*y))

最后,您可以绘制您的结果,您想要使用的pyplot方法是pcolor,要添加一个必须使用的色条,总是来自pyplotcolorbar方法……

代码语言:javascript
复制
from matplotlib.pyplot import colorbar, pcolor, show
Z = f(X, Y)
pcolor(X, Y, Z)
colorbar()
show()

当这一点最终达到时,传统要求提供一个示例输出。

就这样

票数 1
EN

Stack Overflow用户

发布于 2016-10-07 12:44:18

让我们说z = f(x, y)。您的热图的键只能表示一维(通常是z)。你指的是什么

表示方法f(x,y)

对于二维绘图,你需要一个三维热图.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38953668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档