我在python 3上,我有两个变量x和y,其中x从1到5,y从0.03到0.7,然后我有一个取x和y并生成标量数的方法。我想用x作为x轴,y作为y轴和一个颜色键来表示方法f(x,y)。这是怎么做的?我试过使用热图,但是罐头似乎能让它工作,因为范围不能得到令人愉快的x和y。
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)的颜色。
发布于 2016-10-07 14:24:49
如果你从二维向量开始,x和y在二维点网格上计算x和y的函数,首先要用numpy.meshgrid生成二维网格。
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值(您只需打印X和Y以便自己查看)。
在这两个网格可用的情况下,您可以计算一个结果网格,但这只在您使用numpy的ufuncs时才能工作。
def f(x, y):
from numpy import sin, sqrt
return sin(sqrt(x*x+y*y))最后,您可以绘制您的结果,您想要使用的pyplot方法是pcolor,要添加一个必须使用的色条,总是来自pyplot,colorbar方法……
from matplotlib.pyplot import colorbar, pcolor, show
Z = f(X, Y)
pcolor(X, Y, Z)
colorbar()
show()当这一点最终达到时,传统要求提供一个示例输出。

就这样
发布于 2016-10-07 12:44:18
让我们说z = f(x, y)。您的热图的键只能表示一维(通常是z)。你指的是什么
表示方法f(x,y)
对于二维绘图,你需要一个三维热图.
https://stackoverflow.com/questions/38953668
复制相似问题