matplotlib模块

三,matplotlib 库

matplotlib 支持函数式绘图和面向对象绘图两种绘图方式。

函数式绘图方式与matlab风格一致,先用一条语句画出图像,然后用一系列函数去修饰。而面向对象绘图方式一般自上而下完成,先创建figure,然后再创建子图ax,然后绘制data,最后设计各种辅助元素 (包括 xaxis, yaxis, title, grid,legend, annotate 等 )。

1,折线图
import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
plt.figure(figsize=(18, 8), dpi=100)   # 输出图片大小为1800*800
# Mac系统设置中文字体支持
plt.rcParams["font.family"] = 'Arial Unicode MS'

x = [i for i in range(10)]
y1 = [2*i-1 for i in x]
y2 = [i**2+2*i-5 for i in x]
print('x的坐标',x)
print('L1的坐标',y1)
print('L2的坐标',y2)

plt.figure(figsize=(4,3))
plt.plot(x,y2,label='L2')
plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--',label='L1')
plt.xlim((-2,10))
plt.ylim((-2,100))
plt.xlabel('x轴',fontsize=20)
plt.ylabel('y轴',fontsize=20)
plt.legend()
plt.show()
"""
x的坐标 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
L1的坐标 [-1, 1, 3, 5, 7, 9, 11, 13, 15, 17]
L2的坐标 [-5, -2, 3, 10, 19, 30, 43, 58, 75, 94]
"""

matplotlib模块_第1张图片

2,条形图
import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
plt.figure(figsize=(18, 8), dpi=100)   # 输出图片大小为1800*800
# Mac系统设置中文字体支持
plt.rcParams["font.family"] = 'Arial Unicode MS'

data = pd.DataFrame(data=[[89,98,83],[80,86,90]],columns=['语文','数学','英语'],index=['小芳','小明'])
x = np.arange(np.shape(data)[0])  # x=[0,1]
y1 = data['语文']
y2 = data['数学']
y3 = data['英语']

width = 0.3
plt.bar(x,y1,width,label='语文')  # [0,1]
plt.bar(x+width,y2,width,label='数学')  # [0.3,1.3]
plt.bar(x+2*width,y3,width,label='英语')  # [0.6,1.6]

plt.ylim((0,130))
# 底部汉字移动到两个柱状条中间(本来汉字是在左边蓝色柱状条下面的中间位置, 然后再向右移动0.3,就到了3个柱子的中间位置)
plt.xticks(x+width,data.index)
plt.legend()
plt.title('学生成绩条形图展示')
plt.show()

matplotlib模块_第2张图片

3,直方图
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
plt.figure(figsize=(18, 8), dpi=100)   # 输出图片大小为1800*800
# Mac系统设置中文字体支持
plt.rcParams["font.family"] = 'Arial Unicode MS'

plt.xlabel("文本长度")
plt.ylabel("频次")
data = []
np.random.seed(123456)
for x in range(20):
    data.append(np.random.randint(1,5))
plt.hist(data, 4, histtype='bar', rwidth=0.8)
plt.ylim([0, 10])
plt.show()

matplotlib模块_第3张图片

4,柱形分布图
在这里插入代码片
5,散点图
在这里插入代码片
6,饼图
在这里插入代码片
7,绘制子图
在这里插入代码片

你可能感兴趣的:(Python)