我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么使用Python Matplotlib绘制条形图

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么使用Python Matplotlib绘制条形图

今天小编给大家分享一下怎么使用Python Matplotlib绘制条形图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

前言

matplotlib是一个非常强大的Python第三方绘图包,可以绘制非常多非常漂亮的图形。

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom matplotlib import font_manager

一、一般条形图

一般条形图使用 pyplot.bar()函数绘制,其形式及参数如下:

matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
主要参数解释:# x:一个数组或者列表,代表需要绘制的条形图的x轴的坐标点。# height:一个数组或者列表,代表需要绘制的条形图y轴的坐标点。# width:每一个条形图的宽度,默认是0.8的宽度。# bottom:y轴的基线,默认是0,也就是距离底部为0.# align:对齐方式,{'center','edge'},默认是center,居中对齐;edge为靠边对齐,具体靠右边还是靠左边,看width的正负。# color:条形图的颜色。# edgecolor : 条形图边框的颜色。# linewidth  : 条形图边框的宽度。如果为 0,则不绘制边框

pyplot.bar()完整参数戳这里

示例:

某天电影票房数据:

movies = {    "流浪地球":40.78,    "飞驰人生":15.77,    "疯狂的外星人":20.83,    "新喜剧之王":6.10,    "廉政风云":1.10,    "神探蒲松龄":1.49,    "小猪佩奇过大年":1.22,    "熊出没·原始时代":6.71}

直接通过获取字典的键值作为x,y轴数据

#票房单位亿元movies = {    "流浪地球":40.78,    "飞驰人生":15.77,    "疯狂的外星人":20.83,    "新喜剧之王":6.10,    "廉政风云":1.10,    "神探蒲松龄":1.49,    "小猪佩奇过大年":1.22,    "熊出没·原始时代":6.71}# 中文显示问题plt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] = Falseplt.rcParams['font.size'] = 13# 设置图大小plt.figure(figsize=(15,8))x = list(movies.keys()) # 获取x轴数据(字典的键)y = list(movies.values()) # 获取y轴数据(字典的值)plt.bar(x,y,width=0.5,bottom=0,align='edge',color='g',edgecolor ='r',linewidth=2)# 绘制标题plt.title("电影票房数据",size=26)# 设置轴标签plt.xlabel("电影名",size=28)plt.ylabel("票房/亿",size=28)plt.show()

怎么使用Python Matplotlib绘制条形图

也可以利用字典创建DataFrame索引,通过data参数传入

#票房单位亿元movies = {    "流浪地球":40.78,    "飞驰人生":15.77,    "疯狂的外星人":20.83,    "新喜剧之王":6.10,    "廉政风云":1.10,    "神探蒲松龄":1.49,    "小猪佩奇过大年":1.22,    "熊出没·原始时代":6.71}movies_df = pd.DataFrame(data={"name":list(movies.keys()),"tickes":list(movies.values())}) #通过字典创建DataFrame索引font = font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF',size=12)  # 使用font_manager模块设置中文# 设置图的大小,传入x,yplt.figure(figsize=(14,5))# 使用plt.bar()绘制条形图plt.bar("name","tickes",data=movies_df,width=0.5,bottom=0,align='edge',color='g',edgecolor ='r',linewidth=2)#设置X轴刻度,设置字体,也可以设置字体大小sizeplt.xticks(fontproperties=font)# 设置标题plt.title("电影票房数据",size=30)#设置X,Y轴名字plt.ylabel('票房',fontproperties=font,size=25)plt.xlabel('影片名字',fontproperties=font,size=25)#设置Y刻度plt.yticks(range(0,50,5),["%d"%x for x in range(0,50,5)],fontproperties=font1,size=20)# 只保留图形信息plt.show()

怎么使用Python Matplotlib绘制条形图

二、横向条形图

横向条形图需要使用barh()这个跟bar非常的类似,只不过把方向进行旋转。参数也和pyplot.bar()类似

matplotlib.pyplot.barh(y, width, height=0.8, left=None, *, align='center', **kwargs)
# 主要参数解释:# y:数组或列表,代表需要绘制的条形图在y轴上的坐标点。# width:数组或列表,代表需要绘制的条形图在x轴上的值(也就是长度)。# height:条形图的高度(宽度),默认是0.8。# left:条形图的基线,也就是距离y轴的距离。默认为0

pyplot.barh()完整参数

示例:

plt.barh()

movies = {    "流浪地球":40.78,    "飞驰人生":15.77,    "疯狂的外星人":20.83,    "新喜剧之王":6.10,    "廉政风云":1.10,    "神探蒲松龄":1.49,    "小猪佩奇过大年":1.22,    "熊出没·原始时代":6.71}font2 = font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF')x1 = list(movies.keys())y1 = list(movies.values())# 设置图的大小plt.figure(figsize=(10,5))# 使用plt.barh()plt.barh(x1,y1,height=0.7,left=0,color='c',edgecolor='r')#设置Y轴刻度,设置字体,也可以设置字体大小sizeplt.yticks(fontproperties=font2,size=20)plt.xlabel("票房/亿",size=20)# 设置标题plt.title("电影票房数据",size=30)# 只保留图形信息plt.show()

怎么使用Python Matplotlib绘制条形图

Axes.barh(y, width, height=0.8, left=None, *, align='center', **kwargs)

另外,还可通过返回的axes对象绘制图形

movies = {    "流浪地球":40.78,    "飞驰人生":15.77,    "疯狂的外星人":20.83,    "新喜剧之王":6.10,    "廉政风云":1.10,    "神探蒲松龄":1.49,    "小猪佩奇过大年":1.22,    "熊出没·原始时代":6.71}font2 = font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF')mdf = pd.DataFrame(data={"name":list(movies.keys()),"tickes":list(movies.values())})fig,axes = plt.subplots()  # 通过返回的axes对象绘制图形axes.barh("name","tickes",data = mdf,height=0.6,left=0,color='c',edgecolor='r')#设置Y轴刻度,设置字体,也可以设置字体大小sizeplt.yticks(fontproperties=font2,size=20)plt.xlabel("票房/亿",size=24)# 设置标题plt.title("电影票房数据",size=27)# 只保留图形信息plt.show()

怎么使用Python Matplotlib绘制条形图

三、分组条形图的绘制

五天的电影票房数据(假设日期为1.1-1.5):并转换为DataFrame索引

movies = {    "流浪地球":[2.01,4.59,7.99,11.83,16],    "飞驰人生":[3.19,5.08,6.73,8.10,9.35],    "疯狂的外星人":[4.07,6.92,9.30,11.29,13.03],    "新喜剧之王":[2.72,3.79,4.45,4.83,5.11],    "廉政风云":[0.56,0.74,0.83,0.88,0.92],    "神探蒲松龄":[0.66,0.95,1.10,1.17,1.23],    "小猪佩奇过大年":[0.58,0.81,0.94,1.01,1.07],    "熊出没·原始时代":[1.13,1.96,2.73,3.42,4.05]}mdf = pd.DataFrame(movies)  mdf

怎么使用Python Matplotlib绘制条形图

绘制分组条形图思路:先选出每天所有电影的票房数据,可使用DataFrame.iloc[]方法获取,例如

# 获取第一天票房数据mdf.iloc[0]
流浪地球        2.01飞驰人生        3.19疯狂的外星人      4.07新喜剧之王       2.72廉政风云        0.56神探蒲松龄       0.66小猪佩奇过大年     0.58熊出没·原始时代    1.13Name: 0, dtype: float64

然后按天进行绘制,这里需要确定一个中心点作为中间日期的条形图位置(这里为第三天),有多少部电影就需要多少个中心点,可使用np.arange(len(movies))获取x轴刻度作为中心点。最后根据日期按条形图的宽度调整条形图位置即可。

plt.figure(figsize=(15,5))# 设置X轴刻度为一个数组(有广播功能)xticks = np.arange(len(movies)) #设置字体font = font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF')# 设置条形图宽度bar_width = 0.15#设置第一天所有影片条形图的位置plt.bar(xticks-2*bar_width,mdf.iloc[0],width=bar_width,color='pink') # iloc[]取DataFrame的一行#设置第二天所有影片条形图的位置 plt.bar(xticks-bar_width,mdf.iloc[1],width=bar_width)#设置第三天所有影片条形图的位置,默认在[0 1 2 3 4 5 6 7]center处plt.bar(xticks,mdf.iloc[2],width=bar_width)#设置第四天所有影片条形图的位置plt.bar(xticks+bar_width,mdf.iloc[3],width=bar_width)#设置第五天所有影片条形图的位置plt.bar(xticks+2*bar_width,mdf.iloc[4],width=bar_width)# 设置X轴信息plt.xticks(xticks,mdf.columns,fontproperties=font,size=15)#设置Y刻度plt.yticks(range(0,20,2),["%d"%x for x in range(0,20,2)],fontproperties=font,size=16)#设置X,Y轴名字plt.ylabel('票房/亿',fontproperties=font,size=30)plt.xlabel('影片名字',fontproperties=font,size=30)# 设置标题plt.title("五日票房数据",fontproperties=font,size=30)# 只保留图形信息plt.show()

怎么使用Python Matplotlib绘制条形图

使用循环绘制每日数据

plt.figure(figsize=(16,5))# 设置X轴刻度为一个数组(有广播功能)#xticks1 = np.arange(len(movies)) # 这样设置每部电影X轴的距离是1,如果5个条形图宽度之后大于1会和其他电影重叠,可以设置步长xticks1 = np.arange(0,7*len(movies),7) # 改变步长,要在设置X轴信息处改变xticks(步长*ticks labels)的第一个参数,否则对应不上#设置字体font4 = font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF')# 设置条形图宽度bar_width2 = 1.05#使用循环画出前五天的条形图for index in mdf.index:   # plt.bar(xticks1+(-2+index)*bar_width2,mdf.iloc[index],width=bar_width2,label='第%d天票房'%(index+1))    xs = xticks1+(-2+index)*bar_width2 # 在X轴的位置    day_tickets = mdf.iloc[index]    plt.bar(xs,day_tickets,width=bar_width*7,label="第%d天票房"%(index+1))    #设置注释文本    # zip(day_tickets,xs)打包为元素为元组的列表,元素个数与最短的列表一致    for ticket,x in zip(day_tickets,xs):   # ticket是day_tickets列表的值,x是xs的值        plt.annotate(ticket,xy=(x,ticket),xytext=(x-0.2,ticket+0.1))# 设置X轴信息plt.xticks(7*xticks,mdf.columns,fontproperties=font4,size=15)#设置X,Y轴名字plt.ylabel('票房/亿',fontproperties=font4,size=25)plt.xlabel('影片名字',fontproperties=font4,size=25)# 设置标题plt.title("五日票房数据",fontproperties=font4,size=30)# 设置图例font4.set_size(15) # 图例无size属性,可以在字体设置font4中改大小(或者font.set_size():只改图例plt.legend(prop=font4)  # 根据bar()函数的中的label标签进行设置,不可缺少# 设置网格plt.grid()# 只保留图形信息plt.show()

怎么使用Python Matplotlib绘制条形图

四、堆叠条形图绘制

堆叠条形图就是在已有数据基础位置上进行绘制图形,使用bottom参数,以已有数据作为新数据的基地进行新数据的绘制,可以达到调整条形图的位置的目的。

示例:

# 男女不同组别的等分情况menMeans = (20, 35, 30, 35, 27)womenMeans = (25, 32, 34, 20, 25)groupNames = ('G1','G2','G3','G4','G5')xs = np.arange(len(menMeans))  # 有多少个组font5 = font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF',size=16)plt.figure(figsize=(15,7))# 绘制男性得分plt.bar(xs,menMeans,label='男性得分',width=0.4)# 绘制女性得分,以男性得分的最大值为基底plt.bar(xs,womenMeans,bottom=menMeans,label='女性得分',width=0.4)#设置图例plt.legend(prop=font5)  # 根据bar()函数的中的label标签进行设置# 设置X轴刻度名称plt.xticks(xs,groupNames)# 设置标签plt.xlabel("组别",fontproperties=font5,size=23)plt.ylabel("得分",fontproperties=font5,size=23)# 设置标题plt.title("男女不同组别得分",fontproperties=font5,size=28)# 只保留图形plt.show()

怎么使用Python Matplotlib绘制条形图

以上就是“怎么使用Python Matplotlib绘制条形图”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

免责声明:

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

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

怎么使用Python Matplotlib绘制条形图

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么使用Python Matplotlib绘制条形图

今天小编给大家分享一下怎么使用Python Matplotlib绘制条形图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言
2023-07-02

Python+matplotlib怎么绘制条形图和直方图

这篇文章主要介绍“Python+matplotlib怎么绘制条形图和直方图”,在日常操作中,相信很多人在Python+matplotlib怎么绘制条形图和直方图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”P
2023-06-30

Python中怎么使用Matplotlib库绘制图形

这篇文章主要介绍“Python中怎么使用Matplotlib库绘制图形”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中怎么使用Matplotlib库绘制图形”文章能帮助大家解决问题。一、
2023-07-02

python怎么使用Matplotlib绘制多种常见图形

今天小编给大家分享一下python怎么使用Matplotlib绘制多种常见图形的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
2023-06-30

Python pyecharts怎么绘制条形图

这篇文章主要介绍了Python pyecharts怎么绘制条形图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python pyecharts怎么绘制条形图文章都会有所收获,下面我们一起来看看吧。一、简介pye
2023-06-29

使用Python怎么绘制柱状图和条形图

今天就跟大家聊聊有关使用Python怎么绘制柱状图和条形图,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、实验目的:1.掌握Python中柱状图、条形图绘图函数的使用2.利用上述绘
2023-06-15

Python中matplotlib如何绘制经典的饼图和条形图

小编给大家分享一下Python中matplotlib如何绘制经典的饼图和条形图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!matplotlib是基于numpy的
2023-06-02

Matplotlib绘制条形图的方法有哪些

这篇文章主要介绍了Matplotlib绘制条形图的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Matplotlib绘制条形图的方法有哪些文章都会有所收获,下面我们一起来看看吧。import nump
2023-06-29

python怎么绘制折线图和条形图

今天小编给大家分享一下python怎么绘制折线图和条形图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。折线图import m
2023-06-30

怎么使用python sns.countplot()绘画条形图

这篇文章主要介绍了怎么使用python sns.countplot()绘画条形图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用python sns.countplot()绘画条形图文章都会有所收获,下面
2023-07-02

Python matplotlib如何实现图形绘制

本篇内容主要讲解“Python matplotlib如何实现图形绘制”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python matplotlib如何实现图形绘制”吧!1. matplotli
2023-06-21

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录