python使用matplotlib绘制柱状图教程

作者:daisy 时间:2021-01-29 20:20:00 

Matplotlib的概念这里就不多介绍了,关于绘图库Matplotlib的安装方法:点击这里

小编之前也和大家分享过python使用matplotlib实现的折线图和制饼图效果,感兴趣的朋友们也可以点击查看,下面来看看python使用matplotlib绘制柱状图的方法吧,具体如下:

1. 基本的柱状图


import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]

plt.bar(range(len(data)), data)
plt.show()

python使用matplotlib绘制柱状图教程

plt.bar函数签名为:


bar(left, height, width=0.8, bottom=None, **kwargs)

事实上,left,height,width,bottom这四个参数确定了柱体的位置和大小。默认情况下,left为柱体的居中位置(可以通过align参数来改变left值的含义),即:

  • (left - width / 2, bottom)为左下角位置

  • (left + width / 2, bottom + height)为右上角位置

例如:


import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]

plt.bar([0.3, 1.7, 4, 6, 7], data, width=0.6, bottom=[10, 0, 5, 0, 5])
plt.show()

python使用matplotlib绘制柱状图教程

2. 设置柱体样式

(1)颜色

通过facecolor(或fc)关键字参数可以设置柱体颜色,例如:


import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]

plt.bar(range(len(data)), data, fc='g')
plt.show()

python使用matplotlib绘制柱状图教程

通过color关键字参数 可以一次性设置多个颜色,例如:


import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]

plt.bar(range(len(data)), data, color='rgb') # or `color=['r', 'g', 'b']`
plt.show()

python使用matplotlib绘制柱状图教程

(2)描边

相关的关键字参数为:

  • edgecolor 或 ec

  • linestyle 或 ls

  • linewidth 或 lw

例如:


import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]

plt.bar(range(len(data)), data, ec='r', ls='--', lw=2)
plt.show()

python使用matplotlib绘制柱状图教程

(3)填充

hatch关键字可用来设置填充样式,可取值为:/, \, |, -, +, x, o, O, ., *。例如:


import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]

plt.bar(range(len(data)), data, ec='k', lw=1, hatch='o')
plt.show()

python使用matplotlib绘制柱状图教程 

3. 设置tick label


import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]
labels = ['Tom', 'Dick', 'Harry', 'Slim', 'Jim']

plt.bar(range(len(data)), data, tick_label=labels)
plt.show()

python使用matplotlib绘制柱状图教程

4. 堆叠柱状图

通过bottom参数,可以绘制堆叠柱状图。例如:


import numpy as np
import matplotlib.pyplot as plt

size = 5
x = np.arange(size)
a = np.random.random(size)
b = np.random.random(size)

plt.bar(x, a, label='a')
plt.bar(x, b, bottom=a, label='b')
plt.legend()
plt.show()

python使用matplotlib绘制柱状图教程

5. 并列柱状图

绘制并列柱状图与堆叠柱状图类似,都是绘制多组柱体,只需要控制好每组柱体的位置和大小即可。例如:


import numpy as np
import matplotlib.pyplot as plt

size = 5
x = np.arange(size)
a = np.random.random(size)
b = np.random.random(size)
c = np.random.random(size)

total_width, n = 0.8, 3
width = total_width / n
x = x - (total_width - width) / 2

plt.bar(x, a, width=width, label='a')
plt.bar(x + width, b, width=width, label='b')
plt.bar(x + 2 * width, c, width=width, label='c')
plt.legend()
plt.show()

python使用matplotlib绘制柱状图教程

6. 条形图

使用barh方法绘制条形图。例如:


import matplotlib.pyplot as plt

data = [5, 20, 15, 25, 10]

plt.barh(range(len(data)), data)
plt.show()

python使用matplotlib绘制柱状图教程

plt.barh方法的签名为:


barh(bottom, width, height=0.8, left=None, **kwargs)

可以看到与plt.bar方法类似。因此堆积条形图和并列条形图的画法与前面类似,不做赘述。

7. 正负条形图


import numpy as np
import matplotlib.pyplot as plt

a = np.array([5, 20, 15, 25, 10])
b = np.array([10, 15, 20, 15, 5])

plt.barh(range(len(a)), a)
plt.barh(range(len(b)), -b)
plt.show()

总结

标签:python,matplotlib,柱状图
0
投稿

猜你喜欢

  • js数组与字符串的相互转换方法

    2023-06-24 09:41:48
  • Python Pandas中DataFrame.drop_duplicates()删除重复值详解

    2021-11-10 09:55:20
  • python实现最小二乘法线性拟合

    2022-04-01 03:46:49
  • python 的赋值语句和基本输入输出详解

    2021-07-29 13:55:55
  • PDO取Oracle lob大字段,当数据量太大无法取出的问题的解决办法

    2009-04-30 18:41:00
  • sqlserver2008查看表记录或者修改存储过程出现目录名无效错误解决方法

    2024-01-28 21:15:02
  • 微软建议的ASP性能优化28条守则(4)

    2008-02-26 17:57:00
  • django settings.py配置文件的详细介绍

    2022-09-20 07:40:33
  • PHPwind整合最土系统用户同步登录实现方法

    2024-05-11 10:10:53
  • PHP如何实现HTTP验证

    2023-09-04 05:32:46
  • 《写给大家看的设计书》阅读笔记之对齐原则

    2009-07-09 16:32:00
  • python处理cookie详解

    2023-09-27 19:14:36
  • 关于axios如何全局注册浅析

    2024-04-27 16:03:40
  • python调用系统ffmpeg实现视频截图、http发送

    2021-05-20 13:18:53
  • Python PyQt5中窗口数据传递的示例详解

    2023-12-30 10:14:43
  • 如何在Windows中安装多个python解释器

    2023-08-28 02:55:43
  • 查看vue-cli脚手架的版本号和vue真实版本号及详细操作命令

    2023-07-02 17:04:20
  • oracle下加密存储过程的方法

    2009-02-28 10:50:00
  • 设置iframe的document.designMode后仅Firefox中其body.innerHTML为br

    2024-05-02 16:17:31
  • vue table直接定位到指定元素的操作代码

    2024-05-09 15:14:57
  • asp之家 网络编程 m.aspxhome.com