目录

一、matplotlib.pyplot.bar()语法

二、 matplotlib.pyplot.barh()语法

三、绘制条形图

①绘制简单垂直条形图(pyplot编程方式)

②绘制简单水平条形图 (面向对象编程方式)

③绘制带样式的垂直条形图(pyplot与面向对象结合编程方式)

④绘制带样式的水平条形图(面向对象编程方式)

⑤分组条形图(面向对象编程方式)

⑥堆叠条形图(面向对象编程方式)

⑦对称条形图(面向对象与pyplot结合编程方式)


编程方式选择面向对象与pyplot方式最佳

一、matplotlib.pyplot.bar()语法

说明:matplotlib.pyplot.bar()绘制的都是垂直条形图

ax.bar(x, height, width=0.8, bottom=None, *, align='center',
data=None, **kwargs)
plt.bar(x,   #x轴坐标height,   #主体高度width=0.8,   #指定条形宽度 默认值:0.8bottom=0.0,  #指定y轴高度起始值 默认值:0.0align='center' or 'edge',   #指定对齐方式:center:中心堆成 edge:边缘对称alpha,  #指定透明度color,   #指定条形颜色ec,   #指定条形图边缘颜色(是edgecolor的缩写)lw,   #指定条形图边缘线宽(是linewidth的缩写)ls,   #指定条形图边缘线条样式(是linestyle的缩写)fill=True or False,   #是否填充颜色yerr,   #指定误差大小,用于在条形图上添加误差线ecolor,   #指定误差线的颜色joinstyle='miter' or 'round' or 'bevel',   #指定条形图边角连接模式hatch={'/', '\\', '|', '-', '+', 'x', 'o', 'O', '.', '*'},  #指定条形阴影label   #指定图例的显示内容
)

 参数:joinstyle

from matplotlib._enums import JoinStyle
JoinStyle.demo()

二、 matplotlib.pyplot.barh()语法

说明:matplotlib.pyplot.barh()绘制的都是水平条形图

  • y,width,height与bar()里的x,height,width相反
  • left等同于bar()里的bottom 不同的时left作用于x轴,bottom作用于y轴
  • 其他参数作用与bar()参数一致
barh(y, width, height=0.8, left=None, *, align='center', **kwargs)
plt.barh(y,   #y轴坐标width,   #主体长度height=0.8,   #指定条形宽度 默认值:0.8left=0.0,  #指定x轴高度起始值 默认值:0.0align='center' or 'edge',   #指定对齐方式:center:中心堆成 edge:边缘对称alpha,  #指定透明度color,   #指定条形颜色ec,   #指定条形图边缘颜色(是edgecolor的缩写)lw,   #指定条形图边缘线宽(是linewidth的缩写)ls,   #指定条形图边缘线条样式(是linestyle的缩写)fill=True or False,   #是否填充颜色yerr,   #指定误差大小,用于在条形图上添加误差线ecolor,   #指定误差线的颜色joinstyle='miter' or 'round' or 'bevel',   #指定条形图边角连接模式hatch={'/', '\\', '|', '-', '+', 'x', 'o', 'O', '.', '*'},  #指定条形阴影label   #指定图例的显示内容
)

三、绘制条形图

①绘制简单垂直条形图(pyplot编程方式)

import matplotlib.pyplot as plt
import numpy as npx=np.arange(0,11)
y=np.random.random(11)# xticks设置x轴刻度值
plt.xticks(x)
plt.bar(x,y)plt.show()

②绘制简单水平条形图 (面向对象编程方式)

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.sans-serif']=['FangSong']plt.figure(figsize=(5,5))# 绘制一个5*5的画布
ax=plt.axes()x=np.arange(0,6)
y=np.random.random(6)ax.barh(x,y)plt.show()

③绘制带样式的垂直条形图(pyplot与面向对象结合编程方式)

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['FangSong']fig=plt.figure(figsize=(12,8))
ax=plt.axes()x=['我们的父辈','这个杀手不太冷静','肖申克的救赎','狙击手','辛德勒的名单','长津湖']
y=[9.6,7.8,9.7,7.8,9.5,8.9]ax.bar(x,y,width=0.5,color='#EEE8AA',ec='#A0522D',linewidth='5',yerr=0.5,ecolor='#800000',align='center',bottom=0,alpha=0.5,linestyle='-,fill=True,joinstyle='bevel',hatch='/',
label='电影评分图例')for x,y in zip(x,y):ax.text(x,y,s=y,size=20) # 添加条形标签plt.xticks(size=15) # 修改X轴刻度值字体大小
plt.yticks(size=20) # 修改y轴刻度值字体大小
plt.rcParams.update({'font.size':15})  # 设置图例字体大小plt.title('电影评分图例展示',fontsize=25) # 设置图标标题
plt.xlabel('电影名称',fontsize=20)  # 设置x轴标题
plt.ylabel('电影评分',fontsize=20)  # 设置y轴标题ax.grid() # 显示网格线
ax.legend()  # 显示图例
plt.show()

④绘制带样式的水平条形图(面向对象编程方式)

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.sans-serif']=['FangSong']plt.figure(figsize=(8,8))# 绘制一个8*8的画布
ax=plt.axes()name=['日用品','化妆品','生活费','水电费','其他开支']
spend=[500,1000,2000,200,500]ax.barh(name,spend,height=0.5,color='#EEE8AA',ec='#A0522D',linewidth='5',align='center',left=0,alpha=0.5,linestyle='-',fill=True,joinstyle='bevel',hatch='o',label='消费金额')ax.set_xticks(spend,size=15) # 修改X轴刻度值字体大小
ax.set_yticks(name,size=20) # 修改y轴刻度值字体大小ax.set_title('日常开支水平条形图',fontsize=30) # 设置图标标题
ax.set_xlabel('消费金额(元)',fontsize=20)  # 设置x轴标题
ax.set_ylabel('支出方式',fontsize=20)  # 设置y轴标题ax.grid(axis='x') # 设置仅显示x轴网格线
ax.legend()  # 显示图例
plt.show()

⑤分组条形图(面向对象编程方式)

注意:绘制分组条形图时,尽量用一个变量名来接收,方便后期修改。(如下图bar_width=0.2)

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.sans-serif']=['FangSong'] # 设置正常显示中文 字体为仿宋 plt.figure(figsize=(13,10)) # 设置画布 大小为13*10
ax=plt.axes()
name=['小红','小绿','小黄','小紫']
first=[50,70,80,60]  # 第一次语文成绩
second=[60,80,75,65]  # 第二次语文成绩
third=[75,90,60,70]  # 第三次语文成绩bar_width=0.2  # 条形宽度ax.bar(name,first,label='第一次语文成绩',width=bar_width,align='center',color='#00FA9A')
ax.bar(np.arange(4)+bar_width,second,label='第二次语文成绩',width=bar_width,align='center',color='#EEE8AA')
ax.bar(np.arange(4)+bar_width*2,third,label='第三次语文成绩',width=bar_width,align='center',color='#FFB6C1')ax.set_xticks(name) # 设置x轴标签
ax.set_yticks(np.arange(0,110,10)) # 设置y轴标签ax.set_title('语文成绩分组图',fontsize=30) # 设置标题
ax.set_xlabel('姓名',fontsize=20) # 设置x轴标签
ax.set_ylabel('成绩',fontsize=20) # 设置y轴标签ax.legend()# 显示图例
plt.show()

⑥堆叠条形图(面向对象编程方式)

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.sans-serif']=['FangSong']fig=plt.figure(figsize=(10,9))
ax=plt.axes()name=['日用品','化妆品','生活费','水电费','其他开支']
first=[500,1000,2000,200,500]
second=[300,1500,1800,250,800]
third=[400,800,2200,200,600]bar_width=0.3ax.bar(np.arange(5),first,width=bar_width,label='第一个月花费金额',color='#FFDA89')
ax.bar(np.arange(5),second,bottom=first,width=bar_width,label='第二个月花费金额',color='#F4A460')
ax.bar(np.arange(5),third,bottom=np.array(first)+np.array(second),width=bar_width,label='第三个月花费金额',color='#8B0000')ax.set_xticks(np.arange(5),name)ax.set_title('三个月花销堆叠图',size=30)
ax.set_xlabel('支出方式',size=20)
ax.set_ylabel('支出金额(元)',size=20)plt.legend()
plt.show()

⑦对称条形图(面向对象与pyplot结合编程方式)

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.sans-serif']=['FangSong']
plt.rcParams['axes.unicode_minus'] = False # 设置符号显示正常fig=plt.figure(figsize=(10,9))
ax=plt.axes()hobby=['打篮球','逛街','打游戏','打羽毛球','踢足球','看电影']
hobby_man=np.array([10,1,15,13,11,6])
hobby_woman=np.array([2,20,5,15,1,10])ax.barh(range(6),hobby_man,label='男生',color='#191970',height=0.3,align='center')
ax.barh(range(6),-hobby_woman,label='女生',color='#FFB6C1',height=0.3,align='center')plt.yticks(range(6),hobby)
plt.xticks(np.arange(-20,25,5))plt.title('两极分化对称条形图',size=30)
plt.ylabel('爱好',size=20)
plt.xlabel('人数',size=20)plt.legend()
plt.show()

总结:编程方式选择面向对象编程与pyplot编程方式结合在一起为最佳

matplotlib.pyplot.bar()与barh()绘制条形图相关推荐

  1. matplotlib.pyplot.bar()条形图

    bar()函数不能直接分类,它的横坐标仍然是标量刻度,要用xticks来映射分类. matplotlib.pyplot.bar(left, height, width=0.8, bottom=None ...

  2. 10【matplotlib常用统计图】02绘制条形图

    案例 假设你获取到了2017年内地电影票房前20的电影(列表a)和电影票房数据(列表b),那么如何更加直观的展示该数据? a = ["战狼2","速度与激情8" ...

  3. Matplotlib.pyplot参数(条形图,直方图,饼图,散点图)

    1. 条形图 bar() 官方文档网址:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.bar.html#matplotlib.scatter ...

  4. 【python数据可视化笔记】——matplotlib.pyplot()

    目 录 1  %matplotlib inline 2  matplotlib图例中文乱码以及坐标负号显示 2.1  快速解决办法 2.2  永久解决办法 2.2.1  找到自己想要的中文字体 2.2 ...

  5. 最全Python绘制条形图(柱状图)

    条形图(bar chart)也称为柱状图,是一种以长方形的长度为变量的统计图表,长方形的长度与它所对应的数值呈一定比例.    一.导入绘图数据 首先导入绘图所需的数据. import os impo ...

  6. Python绘制条形图

    Python数据分析(三) (一)绘制条形图 绘制条形用的是matplotlib.pyplot下的bar方法 绘制横向条形图用的是matplotlib.pyplot下的barh方法 题目:绘制内地电影 ...

  7. python模块matplotlib.pyplot用法_03_Python 使用Matplotlib绘图

    2019.5.13 不知不觉,已经进入第12周了,Python数据分析的学习现今也已经进入了中后期,在继上周进行了Numpy的康威生命游戏的编写之后:紧接着进行的学习就是利用Python的Matplo ...

  8. matplotlib.pyplot可视化(官方API)

    线 import matplotlib.pyplot as plt x = [1,2,3,4,5,6] y = [3,4,6,7,3,2] plt.xlabel('x') plt.ylabel('y' ...

  9. Python — matplotlib.pyplot 绘图模块及常用函数

    目录 1. 基本用法与折线图 pyplot 模块的常用函数 折线图函数: matplotlib.pyplot.plot() 常用 format_string 参数 常用函数 grid () 控制各轴网 ...

最新文章

  1. PowerDesigner连接Oracle数据库生成数据模型【本地连接方式】
  2. 分词 正文提取 java
  3. python 语言教程(4)元组
  4. 树莓派下的apache
  5. 问:新来的同事都自愿996,这是内卷还是努力啊?
  6. 衡量发动机性能的重要指标—升功率
  7. 博士论文:教你如何给女朋友送礼物
  8. python适合编程语言吗_为什么说python是适合新手入门的编程语言
  9. JavaScript事件---事件入门
  10. iOS底层探索之类的结构(中):bits
  11. 番茄助手破解找到VA_X.dll的位置
  12. 002--YAML工具
  13. linux中.sh文件是什么?怎么执行?
  14. java netcdf精度_NetCDF 介绍
  15. 推荐《天才在左,疯子在右》
  16. Anaconda/Conda创建环境时报错的解决方案
  17. HTTP状态 500 - 内部服务器错误java.lang.NullPointerException
  18. 对逻辑斯蒂回归的一些细节剖析
  19. octobercms mysql_手把手教你选择一款适合自己的CMS/博客程序
  20. html浏览器在哪里,javascript在哪儿启用?

热门文章

  1. pg 9.3 新关键字 lateral 的用法.
  2. “小爱同学”商标遭抢注,小米上诉被驳回
  3. 扩容卡怎么恢复实际容量_Win10电脑硬盘数据损坏了怎么办?电脑数据恢复分享!...
  4. 联想工作站加装固态盘安装win10
  5. 三天打鱼两天晒网问题Python求解
  6. Android微信iwxapi.registerApp崩溃
  7. python比java好学吗-到底学Python还是Java?一张图PK明白!
  8. Sketch Cache Cleaner Mac(Sketch缓存清理助手)
  9. 计算机的好处和坏处的英语作文,The Merits And Demerits Of Computer_电脑的利弊英语作文150字...
  10. C#界面里Form.Icon 属性的使用