实验目的

了解bar函数的每个参数的含义

掌握使用matplotlib画条形图的方法

实验原理

条形图:

(1)函数原型:matplotlib.pyplot.bar(left, height, width=0.8, bottom=None, hold=None, **kwargs)

创建一个水平条形图。创建一个带有矩形边界的水平条,设置如下:

left, left + width, bottom, bottom + height

(left, right, bottom and top edges)

输入参数:

  1. left:标量序列,是X坐标轴数据,即每个块的x轴起始位置
  2. height:标量或者标量序列,是Y坐标轴的数据,即每个块的y轴高度
  3. width:标量或者数组,可选参数。默认为:0.8,每一个块的显示宽度
  4. bottom::标量或者数组,可选参数,默认值为None,条形图y坐标即每一个块的底部高度
  5. color:标量或者数组,可选参数,条形图前景色
  6. edgecolor:标量或者数组,可选参数。条形图边界颜色。
  7. linewidth:标量或者数组,可选参数。条形图边界宽度。 如果为None,使用默认linewidth;如果为0,不画边界。默认为None。
  8. xerr=1:标量或者数组,可选参数,x轴将把生成的errorbars用在条形图上,默认为None。
  9. yerr=1:标量或者数组,可选参数。如果不是None,y轴将把生成的errorbars用在条形图上,默认为None。
  10. ecolor:标量或者数组,可选参数,误差bar的颜色,默认为None。
  11. capsize:标量,可选参数。误差bar的线条宽度,默认为None,从errorbar.capsize rcParam获取到值。
  12. orientation=‘vertical’:设置条形图方向。 (horizontal,vertical)
  13. align=“center”:块的位置 (center, left, right)
  14. hold=None

返回值:

bars:matplotlib.container.BarContainer。带有所有bar与errorbar的容器。

(2)函数原型:matplotlib.pyplot.barh(bottom, width, height=0.8, left=None, hold=None, **kwargs)

输入参数:

  1. bottom:标量或者数组。条形图的y坐标。
  2. width:标量或者数组。条形图宽度。
  3. height:标量序列,可选参数,默认值为:0.8。条形图的高度。
  4. left:标量序列。条形图左边的X坐标

返回值:matplotlib.patches.Rectangle实例。

实验环境

Python 3.6.1

PyCharm

实验内容

使用matplotlib.pyplot中的bar或barh函数绘制条形图。

实验步骤

1.打开Pycharm,选择Create New Project,

创建名为matplotlib7的项目。

2.打开matplotlib7项目,右键选择New=>Python File,

创建名为bar的Python文件。

3.打开bar.py文件,编写代码,用于绘制bar类型的条形图。

导入外包

 import numpy as np import matplotlib.pyplot as plt

4.创建一张图

fig=plt.figure(1)

5.创建一个子图

ax1=plt.subplot(111)

6.使用numpy包中的array函数绘制绘图所需的数据。

data=np.array([15,20,18,25])

7.准备绘制条形图的参数,绘制的条形宽度width=0.5,绘制的条形位置(中心)x_bar=np.arange(4),条形图的高度(height=data)。

 width=0.5 x_bar=np.arange(4)

8.通过plt.bar函数来绘制条形的主体,并传入宽度width,位置x_bar,高度data,颜色color="lightblue"等参数。

rect=ax1.bar(left=x_bar,height=data,width=width,color='lightblue')

9.向条形图添加数据标签。

 for rec in rect: x=rec.get_x() height=rec.get_height() ax1.text(x+0.1,1.02*height,str(height))

10.绘制x,y坐标轴刻度及标签,以及图形标题。

ax1.set_xticks(x_bar)  #x轴刻度
ax1.set_xticklabels(('first','second','third','fourth')) #x轴刻度标签
ax1.set_ylabel('Y Axis') #y轴标签
ax1.set_title("The Bar Graph") #子图的标题
ax1.grid(True)  #绘制网格
ax1.set_ylim(0,28) #绘制y轴的刻度范围
plt.show()

11.完整代码如下:

 import numpy as np import matplotlib.pyplot as plt fig=plt.figure(1)
ax1=plt.subplot(111)
data=np.array([15,20,18,25])
width=0.5
x_bar=np.arange(4) rect=ax1.bar(left=x_bar,height=data,width=width,color='lightblue') for rec in rect:x=rec.get_x() height=rec.get_height()ax1.text(x+0.1,1.02*height,str(height)) ax1.set_xticks(x_bar)  #x轴刻度
ax1.set_xticklabels(('first','second','third','fourth')) #x轴刻度标签
ax1.set_ylabel('Y Axis') #y轴标签
ax1.set_title("The Bar Graph") #子图的标题
ax1.grid(True)  #绘制网格
ax1.set_ylim(0,28) #绘制y轴的刻度范围
plt.show()

12.代码编写完毕,在bar.py文件内,点击右键=》Run ‘bar’,执行bar.py文件。

13.在屏幕上打印出下面的图。

14.创建barh条形图。

打开matplotlib7项目,右键选择New=>Python File,

创建名为barh的Python文件。

15.打开barh.py文件,编写代码,用于绘制barh类型的条形图。

导入外包

import numpy as np
import matplotlib.pyplot as plt

16.创建一张图

fig=plt.figure(1)

17.创建一个子图

ax1=fig.add_subplots(111)

18.使用numpy包中的array函数绘制绘图所需的数据。

data=np.array([30,40,35,50])

19.准备绘制条形图的参数,绘制的条形高度height=0.35,绘制的条形位置(中心)bottom=np.arange(4)。

height=0.35
bottom=np.arange(4)

20.通过plt.barh函数来绘制条形的主体,并传入宽度data,位置bottom,高度height,颜色color="lightbgreen"等参数。

rect=ax1.barh(bottom=bottom,width=data,height=height,color='lightgreen',align='center')

21.向条形图添上数据标签。

for rec in rect: y=rec.get_y() width=rec.get_width() ax1.text(1.02*width,y+0.15,str(width))

22.绘制x,y坐标轴刻度及标签,以及图形标题。

ax1.set_yticks(bottom)  #y轴刻度
ax1.set_yticklabels(('first','second','third','fourth')) #y轴刻度标签
ax1.set_ylabel('category') #y轴标签
ax1.set_xlabel('number')
ax1.set_title("The Barh Graph") #子图的标题
ax1.set_xlim(0,53) #绘制x轴的刻度范围
plt.show()

23.完整代码:

import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure(1)
ax1=fig.add_subplot(111)
data=np.array([30,40,35,50])
height=0.35
bottom=np.arange(4)
rect=ax1.barh(bottom=bottom,width=data,height=height,color='lightgreen',align='center')
for rec in rect: y=rec.get_y() width=rec.get_width() ax1.text(1.02*width,y+0.15,str(width))
ax1.set_yticks(bottom)  #y轴刻度
ax1.set_yticklabels(('first','second','third','fourth')) #y轴刻度标签
ax1.set_ylabel('category') #y轴标签
ax1.set_xlabel('number')
ax1.set_title("The Barh Graph") #子图的标题
ax1.set_xlim(0,53) #绘制x轴的刻度范围
plt.show()

24.代码编写完毕,在barh.py文件内,点击右键=》Run ‘barh’,执行barh.py文件。

25.在屏幕上打印出下面的图。

注意:

代码因复制粘贴原因格式可能会有些错误,请自行检查食用。

matplotlib条形图相关推荐

  1. python数据可视化(matplotlib条形图、饼图、箱状图、直方图、折线图)(代码)

    python数据可视化(matplotlib条形图.饼图.箱状图.直方图.折线图) matplotlib(条形图) 一.简单条形图 1.简单垂直条形图 2.简单水平条形图 二.水平交错条形图 三.垂直 ...

  2. python中matplotlib条形图-python matplotlib库绘制条形图练习题

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

  3. python中matplotlib条形图数值大的在最底层显示_如何使用python的matplotlib模块绘制水平条形图...

    python是一个很有趣的语言,可以在命令行窗口运行.python中有很多功能强大的模块,这篇经验告诉你,如何利用python的matplotlib模块,绘制水平条形图. 工具/原料 windows系 ...

  4. matplotlib 横坐标只显示整数_面试题系列 (168) matplotlib条形图绘制

    之前面试被问到的图表绘制问题,因为涉及项目的时候,经常会做一些报表之类的,那么这样的数据统计图表绘制报表该怎么做,需要用到哪些技术呢?接下来几篇面试文章将会讲解一些常见图表绘制工具与用法,比如matp ...

  5. python柱形图颜色_pyplot/matplotlib条形图,填充颜色取决于值

    我想使用matplotlib/pyplot在python中生成根据值填充的条形图. 图例颜色栏 同时保持最小的模块依赖性. 有比以下更简单的事情吗:import matplotlib.pyplot a ...

  6. 数据分析之matplotlib 条形图(六)

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

  7. python matplotlib 条形图的填充效果

    写专利用的python里面的matplotlib画的条形图 ,最开始用的三种颜色来区分,如下图: 然而被告知不行,只能用黑白的,其他颜色不能用,于是想到用灰度,如下图: 然而又被告知,不行,不能用灰度 ...

  8. 【Python】数据分析.matplotlib.条形图案例处理

    文章目录 数据分析-matplotlib.柱状\条形图案例处理 一.纵向条形图 二.横向条形图 三.柱状图 数据分析-matplotlib.柱状\条形图案例处理 案例一: 假设你获取到了2017年内地 ...

  9. python bar图_python可视化(matplotlib条形图、散点图)

    这一学习一下条形图和散点图的画法. 首先是条形图: import pandas as pd import matplotlib.pyplot as plt import numpy as np fro ...

  10. python 条形图指定颜色_python – 如何给一个熊猫/ matplotlib条形图自定义颜色

    您可以将颜色选项直接指定为绘图函数的列表. from matplotlib import pyplot as plt from itertools import cycle, islice impor ...

最新文章

  1. [爬虫学习笔记]C# 使用 ScrapySharp 并行下载天涯图片
  2. bg和fg指令(整理)以及 Linux中Ctrl+C、Ctrl+D等按键操作进程相关命令
  3. CSS background-position 用法详细介绍
  4. python拆堆和堆叠的操作_python - 如何合并不同的DFS并堆叠值? - 堆栈内存溢出
  5. Python实现不规则txt文本数据读取并转换为csv文本
  6. 一步步编写操作系统 2 部署工作环境 2
  7. 今天,一个收到谷歌Offer的学弟用50W年薪秀了我一脸...
  8. android 4种动画
  9. Android Studio配置文件修改
  10. 基于java的康泰小区物业管理系统的设计与实现毕业设计源码101926
  11. Python PDF转图片 Word
  12. 怎样通过迅捷PDF编辑器来修改PDF文件
  13. 通过pyproj进行WGS84到UTM坐标的转换
  14. 三维匹配_为什么你的倾斜摄影三维建模模型效果差,都进来看看
  15. VS找到w3wp.exe 附加到23wp.exe进行debug程序调试
  16. [微信小程序] 微信小程序使用特殊字体
  17. 怎样促进计算机专业发展,【计算机教学论文】怎样促进计算机技术应用及改善(共4879字)...
  18. 【组合数学】组合数学简介 ( 组合思想 2 : 数学归纳法 | 数学归纳法推广 | 多重归纳思想 )
  19. linux下删除隐藏文件夹及子文件夹
  20. form表单与ajax的两种提交方式

热门文章

  1. 【jQuery】JQuery-ui autocomplete与strtus2结合使用
  2. unity3D与网页的交互
  3. 基于TCP的网络编程
  4. 构建Flex应用的10大误区
  5. 设置linux服务器下开放端口
  6. 解决 CondaHTTPError: HTTP 404 NOT FOUND for url 和 InvalidVersionSpecError: Invalid version spec: =2.7
  7. 2020-08-22 每日一句
  8. 20191007每日一句
  9. 190309每日一句
  10. 2021-05-21