Rendering

效果:

  • 3D 柱状图
  • 按行/列涂颜色
  • 柱加阴影、描黑边
  • 自定义座标轴名、刻度标签、范围

Code

  • 注意 meshgrid 带来的 xxyyacc_flat 之间顺序不匹配的问题,见 [9]。
import numpy as np
import matplotlib
matplotlib.rcParams['font.family'] = 'Times New Roman'
matplotlib.rcParams['mathtext.default'] = 'regular'
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D  # 有时没这句会报错COLOR = ["blue", "cornflowerblue", "mediumturquoise", "goldenrod", "yellow"]
lambda1 = lambda2 = [10 ** x for x in range(-2, 3)]# x, y: position
x = list(range(len(lambda1)))
y = list(range(len(lambda2)))
x_tickets = [str(_x) for _x in lambda1]
y_tickets = [str(_x) for _x in lambda2]# acc = np.random.rand(len(x), len(y))
acc = np.arange(len(x) * len(y)).reshape(len(x), len(y)) + 1
acc = acc / acc.max()# 注意顺序问题,见 [9]
# 2022.3.27:这里正常用,要反的**不**是这里,而是后文的 `acc.ravel()` 那里
xx, yy = np.meshgrid(x, y)  # 2022.3.27:这里正常用,要反的**不**是这里
# yy, xx = np.meshgrid(x, y)  # 2022.3.27:这里**别**反# print(xx)
# print(yy)
color_list = []
for i in range(len(y)):c = COLOR[i]color_list.append([c] * len(x))
color_list = np.asarray(color_list)
# print(color_list)
# 2022.3.27:注意这里 `acc` 在 `ravel()` 之前要转置(`.T`)一下,见 [9]
xx_flat, yy_flat, acc_flat, color_flat = \xx.ravel(), yy.ravel(), acc.T.ravel(), color_list.ravel()
# print(xx_flat)
# print(yy_flat)# fig, ax = plt.subplots(projection="3d")
fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")
ax.bar3d(xx_flat - 0.35, yy_flat - 0.35, 0, 0.7, 0.7, acc_flat,color=color_flat,  # 颜色edgecolor="black",  # 黑色描边shade=True)  # 加阴影# 座标轴名
ax.set_xlabel(r"$\lambda_1$")
ax.set_ylabel(r"$\lambda_2$")
ax.set_zlabel("ACC")# 座标轴范围
ax.set_zlim((0, 1.01))# 座标轴刻度标签
# 似乎要 `set_*ticks` 先,再 `set_*ticklabels`
# has to call `set_*ticks` to mount `ticklabels` to corresponding `ticks` ?
ax.set_xticks(x)
ax.set_xticklabels(x_tickets)
ax.set_yticks(y)
ax.set_yticklabels(y_tickets)# 保存
plt.tight_layout()
fig.savefig("bar3d.png", bbox_inches='tight', pad_inches=0)
plt.close(fig)

References

  1. Demo of 3D bar charts
  2. 3D plots as subplots
  3. matplotlib实现三维柱状图
  4. 第三十一章 3D 条形图
  5. Grouped bar chart with labels
  6. apply color map to mpl_toolkits.mplot3d.Axes3D.bar3d
  7. List of named colors
  8. How to make bar3d plot with transparent faces and non-transparent edges?
  9. numpy meshgrid顺序问题

matplotlib bar3d画3d柱状图相关推荐

  1. 爬取豆瓣电影排行榜,并制作柱状图与3d柱状图

    **爬取豆瓣电影排行榜,并简单制作柱状图 一.首先,我们需要获取页面的信息,下图是从排行第25到50的电影,由此可见start可以想象为偏移量,我们把start的值换为0,得到了第一到25排名的电影, ...

  2. python画图3d柱状图,3d直方图 ax.bar3d

    根据三维数据,画一个柱状图 网上的很多代码,都有点含混不清,而且百度又不好用,无奈自己动手试了一个 import numpy as np import matplotlib.pyplot as plt ...

  3. Matplotlib——画图(散点图、柱状图、等高线图、3D图)

    文章目录 1.画散点图 2.画柱状图 3.等高线图 4.image图 5.画3D图 1.画散点图 首先,先引入matplotlib.pyplot简写作plt,再引入模块numpy用来产生一些随机数据. ...

  4. python使用matplotlib可视化3D柱状图(3D histogram、三维柱状图、包含三个坐标轴x、y、z)、设置zdir参数为z、改变3d图观察的角度

    python使用matplotlib可视化3D柱状图(3D histogram.三维柱状图.包含三个坐标轴x.y.z).设置zdir参数为z.改变3d图观察的角度 目录

  5. python使用matplotlib可视化3D柱状图(3D bar plot、三维柱状图、包含三个坐标轴x、y、z)、设置zdir参数为y、改变3d图观察的角度

    python使用matplotlib可视化3D柱状图(3D bar plot.三维柱状图.包含三个坐标轴x.y.z).设置zdir参数为y.改变3d图观察的角度 目录

  6. Python使用matplotlib进行3D可视化分析:3d柱状图、3d直方图、3d线框图、3d曲面图、3d翼面图(莫比乌斯环)

    Python使用matplotlib进行3D可视化分析:3d柱状图.3d直方图.3d线框图.3d曲面图.3d翼面图(莫比乌斯环) 目录

  7. PyTorch深度学习——PyCharm中使用matplotlib画3D曲面图

    本篇仅针对使用matplotlib画3D曲面图,其他类型的3D图可根据本实例举一反三进行绘制. 具体步骤: 1.Pycharm如果没有matplotlib,第一部需要先安装matplotlib 点击F ...

  8. matplotlib画3D图形时设置z轴尺寸

    matplotlib画3D图形时设置z轴尺寸 参考链接:https://www.osgeo.cn/matplotlib/api/_as_gen/mpl_toolkits.mplot3d.axes3d. ...

  9. python绘制三维曲面图-python中Matplotlib实现绘制3D图的示例代码

    Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...

最新文章

  1. 力软 框架 转 mysql_快速web开发框架——learun framework
  2. RxJava 和 RxAndroid 一 (基础)
  3. 导入别的项目到我的eclipse上出现红色感叹号问题解决方案
  4. 前端学习(2035)vue之电商管理系统电商系统之形成折线图
  5. java验证json合法性_java校验json字符串是否合法
  6. 830. 较大分组的位置
  7. eclipse idea 导入maven项目
  8. 微信读书 《围城》笔记
  9. 2016新网商年度盛典,千机网解构新零售
  10. macos 设置黑白打印_如何停止双面打印成为macOS中的默认设置
  11. xlsxwriter去掉网格线_用XlsxWriter设置Excel的表格边框
  12. 若依源码分析(14)——数据监控
  13. JavaScript 每日一题 #11
  14. python中scale啥意思_scale什么意思
  15. 佛山科目二仙塘考场(B场)-考试要点
  16. vchart 坐标轴标题_ECharts xAxis配置 x坐标轴名称的文本样式
  17. 香港伦敦金交易平台排行榜(2022最新版)
  18. 从ECU和CPU视角理解AutoSar网络管理
  19. 【服务器】什么是服务器虚拟化
  20. 【python】No such file or directory的解决方法

热门文章

  1. yolov5使用教程
  2. 梅科尔工作室-崔启凡-鸿蒙笔记4
  3. 微信小程序 实现实时语音识别 腾讯云
  4. conda创建虚拟环境并添加到jupyter kernel(踩坑泪目)
  5. python计算两个日期的相隔时间
  6. Unity3D 设置帧频及显示FPS
  7. EDA设计(verilog)—— 七段管时钟
  8. Word 插件中没有Endnote(Cwyw Citation Recognizer)解决办法
  9. 网络安全与渗透:信息收集——google浏览器插件,代理服务(五)此生无悔入华夏,男儿何不带吴钩
  10. 要点初见:OpenCL 2.0 异构计算 [第三版] 知识点整理