如何在Pylab中将函数f(x,y)(技术上是一个字段)绘制为颜色渐变?

时间:2014-09-09 17:44:07

标签: python numpy matplotlib

我目前正在尝试绘制一个函数f(x,y),这在技术上是一个向量A(r),如果我是挑剔的话,那就是一个字段。

情节:

我想要在XY图上完成绘图,其中f(x,y)表示为颜色渐变。

例如,在该字段的原点附近,f(x,y)会更大,因此颜色会更深!

感谢任何帮助,我也理解我已经看过一些教程。这些问题是我很难理解为什么他们都使用如下语法:

from something import *import something as something else

为什么要这样做,我一直被教导只是这样做:

import numpy
import pylab

然后我很难理解程序的其余部分,因为语法不清楚,我在答案中找不到黑白教程!

1 个答案:

答案 0 :(得分:1)

用户有两个问题:为什么要对您的导入进行别名,以及如何“绘制”两个参数的变量。别名导入的原因是使代码更紧凑,因此更易于阅读。包具有很好的长名称,不太可能相互冲突。用户有责任在包中保持别名的唯一性。 from something import *很方便,但对可维护性不太好,因为它模糊了导入的内容。为了将它与物理学相关联,它就像写G = w * e ^ 2,并期望有人想出“我用G代表能量,w代表质量,e代表光速。”

绘制两个变量的函数:

import numpy as np
import matplotlib.pyplot as plt
def f(x,y):
   "Arbitrary function of two variables for demonstration"
   return np.sinc(x**2 + y**2)

X, Y = np.meshgrid(np.arange(-5, 5, 0.01), np.arange(-5, 5, 0.01))
plt.imshow(f(x, y))
plt.show()

如果您真的想要灰度,请使用plt.imshow(f(x, y), cmap=plt.cm.gray),如果您感到困扰的是f(x, y)的大值很轻而不是暗,请将f替换为-f