本文主要讲解如何使用python绘制三维的柱形图,如下图

源代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3dimport Axes3D

#构造需要显示的值

X=np.arange(0,5, step=1)#X轴的坐标

Y=np.arange(0,9, step=1)#Y轴的坐标

#设置每一个(X,Y)坐标所对应的Z轴的值,在这边Z(X,Y)=X+Y

Z=np.zeros(shape=(5,9))

for iin range(5):

for jin range(9):

Z[i, j]=i+j

xx, yy=np.meshgrid(X, Y)#网格化坐标

X, Y=xx.ravel(), yy.ravel()#矩阵扁平化

bottom=np.zeros_like(X)#设置柱状图的底端位值

Z=Z.ravel()#扁平化矩阵

width=height=1#每一个柱子的长和宽

#绘图设置

fig=plt.figure()

ax=fig.gca(projection='3d')#三维坐标轴

ax.bar3d(X, Y, bottom, width, height, Z, shade=True)#

#坐标轴设置

ax.set_xlabel('X')

ax.set_ylabel('Y')

ax.set_zlabel('Z(value)')

plt.show()

代码解读:

1、构造需要显示的数据

如下图所示,X坐标取值为[0,1,2,3,4],Y坐标取值为[0,1,2,3,4,5,6,7,8],每一个(X,Y)组合的值Z=X+Y,所需要绘制的图就是在X,Y所对应的坐标位置上面根据Z的值来绘制柱形图。

2、坐标设置

将坐标网格化, X=[0,1,2,3,4],Y=[0,1,2,3,4,5,6,7,8]网格化的结果,如下图所示。可以理解为,X参照Y进行了广播(broadcast), Y参照X进行了广播,分别添加了一个新的维度,并且进行复制。结合xx和yy就得到了所有的X,Y的坐标组合,经过扁平化之后这种对应关系保持不变。代码中的bottom是用来设置绘制每一个柱子的Z坐标的,在此全部都设置为0,而width和height设置每一个柱子的长和宽。

3、bar3d

ax.bar3d(X, Y, bottom, width, height, Z, shade=True):

X,Y:柱子在XY平面的起始坐标

bottom:柱子在Z轴上的起始坐标

width、height:柱子的长宽

Z:数字沿Z轴的长度

shade:是否显示阴影(设置为True立体效果会更好)

shde=True

shade=False

如果需要绘制多个子图,并且里面每一个子图都是3D的,只需要将上述代码进行些许修改即可,案例如下:

1

2

3

4

5

6

7

8

9

10

11

fig=plt.figure()

ax=fig.add_subplot(1,3,1, projection='3d')

ax.bar3d(x, y, z, width, height, top, shade=True)

ax=fig.add_subplot(1,3,2, projection='3d')

ax.bar3d(x, y, z, width, height, top2, shade=True)

ax=fig.add_subplot(1,3,3, projection='3d')

ax.bar3d(x, y, z, width, height, top3, shade=True)

plt.show()

以上就是如何用Python绘制3D柱形图的详细内容,更多关于python绘制柱形图的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/AlgrithmsRookie/p/11677614.html

用python绘制柱状图标题-如何用Python绘制3D柱形图相关推荐

  1. 怎么用python绘制柱状图_如何用python快速简单的制作柱状图?

    柱状图大家都会制作,那么你会用python制作柱状图吗? 我们先来看一下柱状图的定义:柱形图,又被称为长条图.或者柱状统计图,也叫作条图.条状图.棒形图,本质上来说就是一种以长方形的长度为变量的统计图 ...

  2. 用python绘制柱状图标题-Python数据可视化:5种绘制柱状图表的方法(附源码)...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于数据Magic,作者我不是小样 前言 python里面有很多优秀的可 ...

  3. 用python绘制柱状图标题-使用Python绘制柱形竞赛图

    我们经常看到的Bar Chart Race(柱形竞赛图),可以看到数据的呈现非常的直观.今天就一起来学习下如何生成和上面一样的柱形竞赛图. 1.导入Python库 Python 1 2 3 4 5im ...

  4. 用python绘制柱状图标题-使用Python绘制图表大全总结

    在使用Python绘制图表前,我们需要先安装两个库文件numpy和matplotlib. Numpy是Python开源的数值计算扩展,可用来存储和处理大型矩阵,比Python自身数据结构要高效:mat ...

  5. python画树叶-手把手|如何用Python绘制JS地图?

    原标题:手把手|如何用Python绘制JS地图? 关于转载授授权 大数据文摘作品,欢迎个人转发朋友圈,自媒体.媒体.机构转载务必申请授权,后台留言"机构名称+文章标题+转载",申请 ...

  6. python绘制柱状图设置间隔时间,Python数据可视化:5种绘制柱状图表的方法(附源码)...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于数据Magic,作者我不是小样 前言 python里面有很多优秀的可 ...

  7. 用python绘制柱状图模版_python使用matplotlib绘制柱状图教程

    Matplotlib的概念这里就不多介绍了 小编之前也和大家分享过python使用matplotlib实现的折线图和制饼图效果,感兴趣的朋友们也可以点击查看,下面来看看python使用matplotl ...

  8. python旅游推荐系统_如何用Python搭建一个简单的推荐系统?

    推荐系统的相关知识我们已在前文中提到,在这篇文章中,我们会介绍如何用Python来搭建一个简单的推荐系统. 本文使用的数据集是MovieLens数据集,该数据集由明尼苏达大学的Grouplens研究小 ...

  9. python预测房价走势_如何用 Python 预测房价走势?

    原标题:如何用 Python 预测房价走势? 买房应该是大多数都会要面临的一个选择,当前经济和政策背景下,未来房价会涨还是跌?这是很多人都关心的一个话题.今天分享的这篇文章,以波士顿的房地产市场为例, ...

最新文章

  1. 2022-2028年中国服装行业分析报告-产业规模现状与发展规划趋势
  2. Bash 脚本:`(反引号)运算符和 $()的使用方式
  3. ORA-01502:索引或这类索引的分区处于不可用状态 的解决方法
  4. python下载的文件放在哪里的-python实现文件下载的方法总结
  5. dblclick,默认全选屏蔽
  6. BZOJ 4898 Luogu P3778 [APIO2017]商旅 (分数规划、最短路)
  7. Codeforces 482 - Diverse Permutation 构造题
  8. 采样次数不同平均值不一样_认知的不同,才有不一样的人生
  9. 三大框架 —— 持久层框架MyBatis
  10. 408 计算机网络 知识点总结
  11. 魅族16s解决杀后台方法!
  12. 2022年版中国电子信息产业趋势预测及投资战略规划分析报告
  13. 研究生新人如何高效读论文-方法积累笔记
  14. 多模模块接单模光纤跳线/单模模块接多模光纤跳线
  15. 医疗管理系统(Java毕业设计-Springboot项目)
  16. 第一学:pytorch入门60min
  17. 关于心理咨询师与咨询者的讨论
  18. Quora商业模式发展的七种可能性
  19. 线性表操作(线性表)
  20. BLDC无刷直流电机和PMSM永磁同步电机 基于stm32F1的有传感器和无传感驱动 直流无刷电机有传感器和无传感驱动程序

热门文章

  1. mac 配置maven相关
  2. dns tunnel 使用 nishang 下载TXT里的cmd(TXT里)实现CC command+ ceye实现数据外发
  3. 用 Spark 为 Elasticsearch 导入搜索数据
  4. VMware中安装CentOS Linux release 7.4.1708 (Core)
  5. CodeAction_beta02 斐波那契 (多维DP)
  6. spring框架ioc(控制反转)第二讲
  7. Sql server中如何将表A和表B的数据合并(乘积方式)
  8. ZCMU 1894: Power Eggs
  9. 《C与指针》第四章练习
  10. POJ - 3254 - Corn Fields