如何在python中将函数绘制为热图?

时间:2017-02-16 08:50:38

标签: python python-3.x matplotlib plot

我目前正在尝试切换到python。目前我正在尝试重现我用gnuplot绘制的图表(来自gnuplot的图是附加的)在python中。 Image plotted with gnuplot 但是,当我尝试用python做类似的事情时,我的情节完全是黑色的。我看过类似的问题并试过pcolormesh和imshow。两者都有相同的结果。但是,没有错误消息。这是我的最小代码示例:

`

import numpy as np

import matplotlib.pyplot as plt


def f(m,p):
    return ((m-1)**2*(1-p)*p)/(1+(m-1)*p)**2

m = np.arange(0.0,10.0,100.0)

p = np.arange(0.0,0.1,1.0)

X,Y = np.meshgrid(m, p)

Z =f(X,Y)

plt.pcolormesh(X,Y,Z)

plt.show()

可能,我做了一些初学者的错误。但是,如果有人能指出我,我会非常感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

查看numpy.arrange

 numpy.arange([start, ]stop, [step, ]dtype=None)

步骤:数字,可选

  

值之间的间距。对于任何输出,这是距离   在两个相邻值之间,out [i + 1] - out [i]。默认步长   是1.如果指定了步骤,则还必须开始。

所以np.arange(0.0,10.0,100.0)等于[0]

我想也许这就是你想要的:

import numpy as np
import matplotlib.pyplot as plt

def f(m,p):
    return ((m-1)**2*(1-p)*p)/(1+(m-1)*p)**2
m = np.arange(0.0,100.0,10.0)
p = np.arange(0.0,1.0,0.1)

X,Y = np.meshgrid(m, p)
Z =f(X,Y)
plt.pcolormesh(X,Y,Z)
plt.show()

你会得到:

希望这有帮助。