小编rof*_*122的帖子

matplotlib:为半径指定颜色

我有一个磁盘的 3D 图。现在我想根据数组中存储的值以颜色绘制表面。例如圆盘的半径是300mm。该数组可能是这样的:

arr = np.array([[ 114.28, 14],
                [ 128.57, 16],
                [ 142.85,19],
                [ 157.13,20],
                [ 171.41,21],
                [ 185.69,22],
                [ 199.97,24],
                [ 214.25,27],
                [ 228.53,29],
                [ 242.81,30],
                [ 257.09,31],
                [ 271.37,34],
                [ 288.65,35],
                [ 299.93,36],
                [ 300,38]])
Run Code Online (Sandbox Code Playgroud)

这意味着对于半径 = 114.28,我的值为 14。我想以某种颜色(例如蓝色)在半径 114.28 处绘制一个圆。第二个半径是 128.57。对于半径 128.57,分配值 16。这意味着我想用另一种颜色绘制一个圆圈,例如在图的表面上绘制橙色等等。

我尝试用轮廓图解决这个问题(感谢bazingaa)。它看起来正是我想要的。不幸的是,我刚刚意识到这并不是真正解决我的问题。也许我应该解释一下我想要实现的目标。我想展示某些参数(例如速度)如何沿光盘分布。在这种情况下,随着速度向外侧增加,等高线图也会纠正。但也可能发生这样的情况:参数必须可视化,而这些参数并不总是向外部持续增加。我尝试了这种情况,只是在数组中间设置了一个比之前的值更小的值(我将值 27 从 arr 更改为 14),除了图例发生变化之外,等高线图中没有任何反应。也许轮廓图毕竟不是正确的方法?也许我必须绘制单独的圆圈并为其指定颜色,并在圆圈之间进行插值以填补空白。

等值线图

import numpy as np
import matplotlib as mlp
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.axes3d as axes3d

ri = 100
ra = 300
h=20

# input xy coordinates
xy …
Run Code Online (Sandbox Code Playgroud)

python matplotlib contour python-3.x contourf

6
推荐指数
1
解决办法
815
查看次数

标签 统计

contour ×1

contourf ×1

matplotlib ×1

python ×1

python-3.x ×1