python - Python:如何以堆叠/分层的方式绘制一系列区域?
问题描述
我有几个不同的区域来测量给定条件下某事物的二维空间事件。条件用区域的颜色编码。这些区域通常是多边形(即使我已经绘制了圆圈)并且可以在其中有孔,例如:
为了增加可视化的清晰度,我被要求将其变成所谓的“婚礼蛋糕图”,其中每个区域彼此垂直偏移,每个区域周围都有垂直边。有点像下面的画图:
如何使用 Matplotlib 或其他 Python 绘图包执行此操作?
解决方案
你可以这样做plot_surface
:
# sample data
data = np.zeros((20,24))
data[2:18, 2:18] = 1
data[4:16, 4:16] = 2
data[6:14,6:14] = 3
data[8:12,8:12] = 2
# 2D view
plt.imshow(data, cmap='Reds')
# mesh
X,Y=np.mgrid[0:data.shape[0], 0:data.shape[1]]
# plot
fig, ax = plt.subplots(subplot_kw={"projection": "3d"})
surf = ax.plot_surface(X, Y, data, cmap='hot',
linewidth=0, antialiased=False)
输出:
注意您需要正确地对数据进行分层标记。
推荐阅读
- php - 将单个数组与 PHP 中的多维数组匹配
- parsing - 递归预测下降解析器是否需要构建完整的语法树并存储在内存中?
- mqtt - 无法从本地网络上的另一台机器连接到 mosquitto 代理
- c# - 调试 C# 时如何单步说明?
- c# - 如何在 Unity C# 中延迟为玩家添加更多生命值?
- c - 我不明白 inih 是如何工作的
- wxpython - 在 wxPython 中使用 wxFileConfig 时如何捕获文件未找到类型错误?
- r - 如何将(半)监督方法(结构主题模型,种子 lda)应用于只有一个主题的语料库,并在 r 中每年汇总它们的结果?
- linux - 为 ARM 交叉编译 Google Protobuf
- google-cloud-platform - 关于 SSL 证书,如何通过 HTTPS 正确使用 Google Cloud IoT Core?