【发布时间】:2021-10-21 00:03:47
【问题描述】:
使用matplotlib,我正在尝试将 3D 数据绘制为 2D 颜色图。每个点都有一个x 和一个y 坐标,以及一个“高度”z。此高度应确定某个 x/y 区域的颜色。
这是我一直在尝试的代码:
import random
import numpy as np
import matplotlib.pyplot as plt
x = []
y = []
z = []
for index in range(100):
a = random.random()
b = random.random()
c = np.exp(-a*a - b*b)
x.append(a)
y.append(b)
z.append(c)
cmap = plt.get_cmap('PiYG')
fig, ax = plt.subplots()
ax.pcolormesh(x, y, z, cmap=cmap)
但它给出了一个错误
ValueError: not enough values to unpack (expected 2, got 1)
也许我在尝试错误的事情?
备注:三个列表 x、y、z 并针对上面的示例进行了计算,但实际上我只有三个带有“随机”数字的列表,我想对其进行可视化。给定 x 和 y,我无法计算 z。
我也可以使用imshow 创建我想要的绘图,但我必须先将原始数据转换为矩阵。也许有一个我可以使用的功能?
【问题讨论】:
-
仅供参考:彻底回答问题非常耗时。如果您的问题已解决,请通过接受最适合您的需求的解决方案表示感谢。 ✔ 位于答案左上角的 ▲ / ▼ 箭头下方。如果出现更好的解决方案,则可以接受新的解决方案。如果您的声望超过 15,您也可以使用 ▲ / ▼ 箭头对答案的有用性进行投票。 如果解决方案不能回答问题,请发表评论。 What should I do when someone answers my question?。谢谢
标签: python numpy matplotlib random colors