pyplot模块
常用函数
每个函数都会在后面的例子中用到
函数 | 描述 |
---|---|
plot() | plot函数是用来绘制线状图的函数。plot函数中可以传入多组x,y轴的数据,并选择用什么样的图线绘图。 |
show() | 用来展示图片 |
axis() | 该函数用来设置x,y轴的刻度上下限 |
xlabels(),ylabels() | 这两个函数通过传入字符串来给x,y轴添加描述信息 |
scatter() | 用于绘制散点图 |
figure() | 对图片的显示进行设置,如:大小,dpi |
bar() | 绘制条形图 |
xticks(),yticks() | 调整x,y轴的刻度信息 |
subplot() | 多图绘制,同时展示 |
函数 | 描述 |
---|---|
subtitle() | 多图绘制时总标题 |
绘制折线图
- 绘制折线图需要用到plot()函数
- 简单示例:
from matplotlib import pyplot as plt
import random
# 取100个1-100的随机数
x = [random.randint(1,100) for i in range(1,101)]
# 取100个1-100的随机数
y = [random.randint(1,100) for i in range(1,101)]
plt.plot(x,y)
plt.show()
-
线的样式
-
可以通过plot函数的第三个参数,对绘制的图形的线条样式进行设置。
-
格式:’颜色+形状‘
-
示例:
-
# 将线条颜色改为红色,线条样式改为'--'
plt.plot(x,y,'r--')
当然还有更多颜色,点的样式就不一一列举了:
颜色 | 描述 |
---|---|
b | blue |
c | cyan |
g | green |
k | black |
m | magenta |
r | red |
w | white |
y | yellow |
- plot可传入多组数据绘制多个折线
import numpy as np
t = np.arange(0., 5., 0.2)
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()
绘制散点图
-
绘制散点图需要用到scatter()函数
-
简单示例:
from matplotlib import pyplot as plt
import random
# 取100个1-100的随机数
x = [random.randint(1,100) for i in range(1,101)]
# 取100个1-100的随机数
y = [random.randint(1,100) for i in range(1,101)]
plt.scatter(x,y)
plt.show()
- 点的颜色和大小,都是可以调整的,例如:
# 绘制渐变效果的散点图
from matplotlib import pyplot as plt
import random
# 取100个1-100的随机数
x = [random.randint(1,100) for i in range(1,101)]
# 取100个1-100的随机数
y = [random.randint(1,100) for i in range(1,101)]
# c代表点的颜色,s代表点的大小
# c既可以传入一种颜色的参数,也可以列表形式传入一系列数字,实现渐变色,但列表
# 中的数字必须与点的个数保持一致
# s也是同样的道理
plt.scatter(x,y,c=x,s=x)
plt.show()
解决中文不兼容问题
在对x,y轴添加描述信息或设置中文刻度时,会遇到中文不兼容问题
# 设置中文字体
import matplotlib as mpl
# 将字体设置为简体黑字
font = {'family':'SimHei',
'weight':'bold',
}
mpl.rc('font', **font)
绘制条形图
- 绘制条形图需要用到bar()函数
- 示例:
from matplotlib import pyplot
movies = ['战狼2','哪吒之\n魔童降世','流浪地球','复联4','红海行动','美人鱼','唐人街探案2']
box_office = [56.39,49.34,46.18,42.05,36.22,33.9,33.71]
# 设置中文字体
import matplotlib as mpl
# 将字体设置为简体黑字
font = {'family':'SimHei'}
mpl.rc('font', **font)
# 设置图片大小
pyplot.figure(figsize=(8,6))
# 绘图
pyplot.bar(movies,box_office)
# 对x轴进行调整,rotation旋转度数
pyplot.xticks(rotation=45)
# 添加描述信息
pyplot.xlabel('电影名')
pyplot.ylabel('票房(单位:亿)')
# 展示图片
pyplot.show()
多图绘制
-
需要用到subplot(nrows, ncols, index, **kwargs)函数
-
前三个参数分别表示行、列,每一行图片顺序。也可以将三个参数合成一个数字写。
-
示例:
from matplotlib import pyplot as plt
names = ['group_a', 'group_b', 'group_c']
values = [1, 10, 100]
plt.figure(figsize=(9, 3))
plt.subplot(131)
plt.bar(names, values)
plt.subplot(132)
plt.scatter(names, values)
plt.subplot(133)
plt.plot(names, values)
plt.suptitle('Categorical Plotting')
plt.show()