Matplotlib单值等高线图

2024-04-26 00:20:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我想绘制一些数据的等高线图,但有可能字段中的所有值都相同。这会导致matplotlib中出现错误,这是有意义的,因为实际上没有要创建的轮廓。例如,如果您运行下面的代码,您将得到一个错误,但是删除zi的第二个定义,它将按预期运行。在

如果是一个统一的字段,我如何为某些数据绘制“等高线”图?我希望它看起来像常规的等高线图(有一个填充了一些颜色的方框,并在侧面显示了一个颜色条)。颜色栏可以是统一的颜色,或者仍然显示15种颜色,我不在乎)。在

代码:

from numpy        import array
import matplotlib.pyplot as plt

xi = array([0., 0.5, 1.0])
yi = array([0., 0.5, 1.0])
zi = array([[0., 1.0, 2.0],
            [0., 1.0, 2.0],
            [0., 1.0, 2.0]])
zi = array([[1.0, 1.0, 1.0],
            [1.0, 1.0, 1.0],
            [1.0, 1.0, 1.0]])

CS = plt.contour(xi, yi, zi, 15, linewidths=0.5, colors='k')
CS = plt.contourf(xi, yi, zi, 15, cmap=plt.cm.jet)
plt.colorbar()
plt.show()

Tags: 数据代码importmatplotlib颜色错误绘制plt
1条回答
网友
1楼 · 发布于 2024-04-26 00:20:15

嗯,contourf处理得很好,是{}窒息了。在

为什么不这样做:

import numpy as np
import matplotlib.pyplot as plt

xi = np.array([0., 0.5, 1.0])
yi = np.array([0., 0.5, 1.0])
zi = np.ones((3,3))

try:
    CS = plt.contour(xi, yi, zi, 15, linewidths=0.5, colors='k')
except ValueError:
    pass
CS = plt.contourf(xi, yi, zi, 15, cmap=plt.cm.jet)

plt.colorbar()
plt.show()

这样,如果有统一的字段,您将得到一个填充的(默认情况下为绿色)框,否则将得到一个填充的等高线图。在

enter image description here

相关问题 更多 >