栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

根据值更改matplotlib中3D条形图中的条形颜色

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

根据值更改matplotlib中3D条形图中的条形颜色

从bar3d的文档

color
可以看出,它可以是一个数组,每个条带一种颜色。

这样就很容易在一次调用中为所有栏着色

bar3d
。我们只需要将
data
数组转换为可以使用颜色图完成的颜色数组,

colors = plt.cm.jet(data.flatten()/float(data.max()))

(请注意,颜色图的取值介于0到1之间,因此我们需要将这些值标准化到此范围内。)

完整的例子:

import matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dimport numpy as npdata = np.array([ [0, 0, 0, 2, 0, 0, 1, 2, 0, 0, 0],         [0, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0],         [1, 0, 2, 2, 1, 2, 0, 0, 2, 0, 2],         [1, 0, 2, 2, 0, 2, 0, 2, 2, 2, 2],         [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],         [2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2],         [0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2],         [1, 2, 0, 0, 2, 1, 2, 2, 0, 0, 2],         [0, 0, 2, 1, 0, 0, 2, 0, 0, 0, 0],         [2, 1, 2, 2, 0, 0, 0, 2, 0, 0, 2],         [2, 2, 2, 0, 2, 0, 0, 0, 2, 2, 2],         [2, 2, 0, 0, 2, 2, 2, 2, 2, 0, 0],         [2, 2, 1, 2, 0, 0, 0, 2, 2, 2, 0],         [2, 0, 0, 2, 0, 0, 2, 2, 2, 2, 2],         [2, 0, 0, 2, 0, 2, 2, 2, 2, 2, 2]])ypos, xpos  = np.indices(data.shape)xpos = xpos.flatten()   ypos = ypos.flatten()zpos = np.zeros(xpos.shape)fig = plt.figure()ax = fig.add_subplot(111, projection='3d')colors = plt.cm.jet(data.flatten()/float(data.max()))ax.bar3d(xpos,ypos,zpos, .5,.5,data.flatten(), color=colors)ax.set_xlabel('X')ax.set_ylabel('Y')ax.set_zlabel('Z')plt.show()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614175.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号