matplotlib bar3d画3d柱状图

这篇具有很好参考价值的文章主要介绍了matplotlib bar3d画3d柱状图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Rendering

matplotlib bar3d画3d柱状图

效果:文章来源地址https://www.toymoban.com/news/detail-441679.html

  • 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柱状图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matlab绘图系列教程-基础绘图:柱状图 (bar函数 )

    4.1 介绍 4.1.1 引言 柱状图是一种常用的数据可视化方式,用于比较不同类别的数据或展示数据的分布。在Matlab中,使用 bar 函数可以轻松地绘制出精美的柱状图。本篇博客将为您介绍如何使用Matlab绘制优雅的柱状图,展示数据的视觉效果和科研价值。 4.1.2 目标和受众 本篇博客

    2024年02月12日
    浏览(46)
  • Matlab中画柱状图详细教程bar函数使用方法(二维附matlab代码)柱状图创建/位置/颜色/图例

    bar(y) bar(x,y) bar(___,width) bar(___,style) bar(___,color) bar(___,Name,Value) bar(ax,___) b = bar(___) bar(y) 创建一个柱状图/条形图,y 中的每个元素对应一个柱状/条形。如果 y 是矩阵,则 bar 根据 y 中的行对柱状/条形分组。 bar(x,y) 在 x 指定的位置绘制柱状/条形。 bar(___,width) 设置柱状/条形的相对

    2023年04月24日
    浏览(41)
  • 【数据分析之道-Matplotlib(五)】Matplotlib柱状图

    ✍ 作者简介: i阿极 ,CSDN Python领域新星创作者, 专注于分享python领域知识。 ✍ 本文录入于《数据分析之道》 ,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。 ✍ 订阅后,可以阅读《数据分析之道》中全部文章内容

    2024年02月07日
    浏览(36)
  • Matplotlib绘制柱状图

    柱状图是一种用矩形柱来表示数据分类的图表,柱状图可以垂直绘制,也可以水平绘制,它的高度与其所表示的数值成正比关系。柱状图显示了不同类别之间的比较关系,图表的水平轴 X 指定被比较的类别,垂直轴 Y 则表示具体的类别值。 绘制柱状图的命令为: bar() 1.简单柱

    2024年02月09日
    浏览(51)
  • 【matplotlib 实战】--堆叠柱状图

    堆叠柱状图 ,是一种用来分解整体、比较各部分的图。 与柱状图类似,堆叠柱状图常被用于比较不同类别的数值。而且,它的每一类数值内部,又被划分为多个子类别,这些子类别一般用不同的颜色来指代。 柱状图帮助我们观察“总量”,堆叠柱状图则可以同时反映“总量

    2024年02月08日
    浏览(41)
  • 【matplotlib 实战】--柱状图

    柱状图,是一种使用矩形条,对不同类别进行数值比较的统计图表。 在柱状图上,分类变量的每个实体都被表示为一个矩形(通俗讲即为“柱子”),而数值则决定了柱子的高度。 柱状图是一种用长方形柱子表示数据的图表。 它包含三个主要元素: 横轴(x轴):表示数据

    2024年02月08日
    浏览(41)
  • 【matplotlib 实战】--百分比柱状图

    百分比堆叠式柱状图 是一种特殊的柱状图,它的每根柱子是等长的,总额为100%。 柱子内部被分割为多个部分,高度由该部分占总体的百分比决定。 百分比堆叠式柱状图 不显示数据的“绝对数值”,而是显示“相对比例”。 但同时,它也仍然具有柱状图的固有功能,即“比

    2024年02月08日
    浏览(48)
  • 超详细的Python matplotlib 绘制柱状图

    Python 为数据展示提供了大量优秀的功能包,其中 matplotlib 模块可以方便绘制制作折线图、柱状图、散点图等高质量的数据包。 关于 matplotlib 模块,我们前期已经对matplotlib进行基本框架、以及常用方法的学习 Python matplotlib 绘制饼图_ python matplotlib绘制折线图_ python入门到进阶,

    2023年04月08日
    浏览(62)
  • 软件测试|使用matplotlib绘制多种柱状图

    简介 在数据可视化领域,Matplotlib是一款强大的Python库,它可以用于创建多种类型的图表,包括柱状图。本文将介绍如何使用Matplotlib创建多种不同类型的柱状图,并提供示例代码。 创建基本柱状图 首先,让我们创建一个基本的柱状图,以可视化一组数据的比较。假设我们有

    2024年01月18日
    浏览(58)
  • Python Matplotlib数据可视化绘图之(一)————柱状图

    本文我们主要介绍利用Python中的Matplotlib模块进行几种柱状图的画法,包括整张图片只有一种颜色的不分组柱状图、整张图片有好几种颜色的不分组柱状图、整张图片有好几种颜色的分组柱状图等。 主要利用Python中的Matplotlib模块完成该功能。 表格如下(示例): 语言种类

    2024年02月06日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包