文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python绘制柱状图的方法

2024-04-02 19:55

关注

本文实例为大家分享了python绘制柱状图的具体代码,供大家参考,具体内容如下

绘制数据系列的柱状图

import numpy as np
import matplotlib.pyplot as plt
import os #导入os库

x=np.linspace(0, 10, 30)#产生0-10之间30个元素的等差数列
noise=np.random.randn(30)#产生30个标准正态分布的元素
y1=x**2+2*noise #//产生叠加噪声的数据系列1
y2=x**1+2*noise #产生叠加噪声的数据系列2
y3=x**1.5+2*noise #产生叠加噪声的数据系列3\n"
plt.rcParams['font.sans-serif'] = 'SimHei'#设置字体为SimHei显示中文\n",
plt.rc('font', size=14)#设置图中字号大小\n",
plt.figure(figsize=(6,4))#设置画布\n",
plt.bar(x,y1,width = 0.2)#绘制柱状图\n",
plt.title('柱状图')#添加标题\n",
plt.xlabel('x')#添加横轴标签\n",
plt.ylabel('y1')#添加y轴名称\n",
path='D:\\my_python\\ch3\\output\\'
if not os.path.exists(path):
  os.makedirs(path)
plt.savefig(path+'scatter.jpg')#保存图片
plt.savefig(path+'plot.jpg')#保存图片\n",
plt.show()

绘制数据系列和的柱状图

import numpy as np
import matplotlib.pyplot as plt
import os #导入os库

x=np.linspace(0, 10, 30)#产生0-10之间30个元素的等差数列
noise=np.random.randn(30)#产生30个标准正态分布的元素
y1=x**2+2*noise #//产生叠加噪声的数据系列1
y2=x**1+2*noise #产生叠加噪声的数据系列2
y3=x**1.5+2*noise #产生叠加噪声的数据系列3\n"
plt.rcParams['font.sans-serif'] = 'SimHei'#设置字体为SimHei显示中文\n",
plt.rc('font', size=14)#设置图中字号大小\n",

plt.figure(figsize=(6,4))#设置画布\n",
plt.bar([0,1,2],[np.sum(y1),np.sum(y2),np.sum(y3)],width = 0.5)#绘制柱状图\n",
plt.title('柱状图')#添加标题\n",
labels=['y1的和','y2的和','y3的和']
plt.xlabel('数据系列y')#添加横轴标签\n",
plt.ylabel('数据系列y的和')#添加纵轴标签\n",
plt.xticks(range(3),labels)#横轴刻度与标签对准\n",


path='D:\\my_python\\ch3\\output\\'
if not os.path.exists(path):
  os.makedirs(path)
plt.savefig(path+'scatter.jpg')#保存图片
plt.savefig(path+'plot.jpg')#保存图片\n",
plt.show()

plt.figure(figsize=(6,4))#设置画布\n",
plt.bar(x,y1,width = 0.2)#绘制柱状图\n",
plt.bar(x,y2,width = 0.2,bottom=y1)#绘制柱状图  这里将堆叠到y1上方。
plt.title('堆叠柱状图')#添加标题\n",
plt.xlabel('x')#添加横轴标签\n",
plt.ylabel('y')#添加纵轴标签\n",
plt.legend(['y1','y2'])

plt.figure(figsize=(6,4))#设置画布\n",
plt.bar(x,y1,width = 0.2)#绘制柱状图\n",
plt.bar(x,y2,width = 0.2,bottom=y1)#绘制柱状图\n",
plt.bar(x,y3,width = 0.2,bottom=y1+y2,color='red')#绘制柱状图\n",
plt.title('堆叠柱状图')#添加标题\n",
plt.xlabel('x')#添加横轴标签\n",
plt.ylabel('y')#添加纵轴标签\n",
plt.legend(['y1','y2','y3'])

bar()方法的bottom参数指定了数据的“底”,通过将一个数据系列指定为另一个数据系列的bottom,可以将两个或多个数据系列的柱状图堆叠起来。

绘制水平柱状图

plt.figure(figsize=(6,4))#设置画布\n",
plt.barh(x, width=y1, height=0.2)
plt.title('水平柱状图')#添加标题\n",
plt.xlabel('y')#添加纵轴标签\n",
plt.ylabel('x')#添加横轴标签"

绘制水平堆叠柱状图

plt.figure(figsize=(6,4))#设置画布\n",
plt.barh(x, width=y1, height=0.2)
plt.barh(x, width=y2, height=0.2,left=y1)
plt.barh(x, width=y3, height=0.2,left=y1+y2,color='red')
plt.title('水平柱状图')#添加标题\n",
plt.xlabel('y')#添加纵轴标签\n",
plt.ylabel('x')#添加横轴标签\n",

与bar 方法类似, barch 方法使用left 参数设置数据左侧的起点,将一个数据设置为另一个数据系列的left参数,可以将2个或多个数据系列盐水瓶方向堆叠起来。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯