Python使用matplotlib绘制图表
2020-01-06 本文已影响0人
不思九八
Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。
通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。
安装
使用pip安装
python -m pip install -U matplotlib
绘制图表
只需要几个步骤,少数几行代码就可以显示出看好的图标
- 准备数据,x和y序列,调用
plot()
、bar()
等创建图表 - 设置标题,x、y轴标签
- 生成图例
- 显示
绘制折线/曲线图
下面例子,借助numpy库,生成 和 序列,绘制x的一次放、二次方、三次方曲线。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2, 200)
plt.plot(x, x, label='linear')
plt.plot(x, x**2, label='quadratic')
plt.plot(x, x**3, label='cubic')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend()
plt.show()
运行效果:
Figure_1.png
设置样式和颜色
x = np.linspace(0, 2, 20)
plt.plot(x, x, 'ob', x, x, '-', label='linear')
# 'ob'圆点和蓝色,效果为散点图
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend()
plt.show()
显示为一张散点图,标签是蓝色的圆点:
Figure_2.png
样式表:
字符 | 描述 | 字符 | 描述 | |
---|---|---|---|---|
'-' | 实线样式 | '--' | 短横线样式 | |
'-.' | 点划线样式 | ':' | 虚线样式 | |
'.' | 点标记 | ',' | 像素标记 | |
'o' | 圆标记 | 'v' | 倒三角标记 | |
'^' | 正三角标记 | '<' | 左三角标记 | |
'>' | 右三角标记 | '1' | 下箭头标记 | |
'2' | 上箭头标记 | '3' | 左箭头标记 | |
'4' | 右箭头标记 | 's' | 正方形标记 | |
'p' | 五边形标记 | '*' | 星形标记 | |
'h' | 六边形标记 1 | 'H' | 六边形标记 2 | |
'+' | 加号标记 | 'x' | X 标记 | |
'D' | 菱形标记 | 'd' | 窄菱形标记 | |
'|' | 竖直线标记 | '_' | 水平线标记 |
以下是颜色的缩写:
字符 | 颜色 |
---|---|
'b' | 蓝色 |
'g' | 绿色 |
'r' | 红色 |
'c' | 青色 |
'm' | 品红色 |
'y' | 黄色 |
'k' | 黑色 |
'w' | 白色 |
绘制条形图
直接上代码:
from matplotlib import pyplot as plt
x = [5,8,10]
y = [12,16,6]
x2 = [6,9,11]
y2 = [6,15,7]
plt.bar(x, y, align = 'center')
plt.bar(x2, y2, color = 'g', align = 'center')
plt.title('Bar graph')
plt.ylabel('Y axis')
plt.xlabel('X axis')
plt.show()
Figure_3.png
绘制饼图
# Pie chart, where the slices will be ordered and plotted counter-clockwise:
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0) # only "explode" the 2nd slice (i.e. 'Hogs')
fig1, ax1 = plt.subplots()
ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
shadow=True, startangle=90)
ax1.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
plt.show()
Figure_4.png
一个基本饼图,本例包含了以下几个特性:
- 切片标签
- 自动计算百分比
- 使用“explode”参数分离出一个切片
- 阴影
- 起始角度设定