matplotlib 绘图
是python绘图库,主要用于绘制图表,可视化的展示数据的信息
折线图:
以折线的上升或下降来表示统计数量的增减变化的统计图
**特点:**能够显示数据的变化趋势,反映事物的变化情况(变化)
直方图:
由一系列高度不等的纵向条纹或线段表示数据的分布情况,一般用横轴表示数据范围,纵轴表示分布情况
**特点:**绘制连续性的数据,展示一组或者多组数据的分布状况(统计)
条形图:
排列在工作表的列或行中的数据可以绘制到条形图中
**特点:**绘制离散性的数据,能够一眼看出各个数据的大小,比较数据之间的差别(统计)
散点图:
用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式
**特点:**判断变量之间是否存在shul数量关联趋势,展示离群点(分布规律)
安装matplotlib
(scrapy_env) C:\Users\Administrator>pip install matplotlib
图表显示中文
#linux和Windows中字体设置中文显示的方法
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False #这两行需要手动设置
mac系统
画图
折线图
from matplotlib import pyplot as plt
from matplotlib import rc
import random
#linux和Windows中字体设置中文显示的方法
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False #这两行需要手动设置
# 绘制折线图
x=range(0,120)
y1=[random.randint(20,35) for i in range(0,120)]
y2=[random.randint(20,35) for i in range(0,120)]
# 设置图片大小
plt.figure(figsize=(20,8),dpi=80)
# 多个图形,一直Plot即可
# 画图,将数据填充至图表, 图例,必须要标签 自定义风格,颜色,虚线,宽度,透明度
plt.plot(x,y1,label='自己',color='red',linestyle='--',linewidth=2,alpha=0.5)
plt.plot(x,y2,label='同桌',color='blue',linestyle='-',linewidth=2,alpha=0.5)
# 设置x,y轴刻度
_x=list(x)[::3]
_xtick_lablels=["10点{}分".format(i) for i in range(0,60)]
_xtick_lablels+=["11点{}分".format(i) for i in range(0,60)]
# 数据长度,和单位长度必须保持一致
plt.xticks(_x,labels=_xtick_lablels[::3],rotation=45)#指明x轴刻度,旋转45度
plt.yticks(range(min(y1),max(y1)+1))
# 添加图表的描述信息
plt.xlabel=('时间')
plt.ylabel=('温度 单位摄氏度')
plt.title('10点到12点每分钟的气温变化情况')
# 添加图例,提示 红色自己 蓝色同桌,位置0-7 ,必须指定标签
plt.legend(loc=0)
# 添加网格,alpha透明度
plt.grid(alpha=0.4)
# 将绘制到的图表保存到本地,保存为标量图
plt.savefig('./zxt.png')
#展示
plt.show()
散点图
from matplotlib import pyplot as plt
from matplotlib import rc
import random
#linux和Windows中字体设置中文显示的方法
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False #这两行需要手动设置
# 绘制折线图
x_3=range(1,32)
x_10=range(51,82)
y_3=[random.randint(20,35) for i in range(31)]
y_10=[random.randint(20,35) for i in range(31)]
# 设置图片大小
plt.figure(figsize=(20,8),dpi=80)
# 画图,将数据填充至图表, 图例,必须要标签 自定义风格,颜色,虚线,宽度,透明度
plt.scatter(x_3,y_3,label='3月份')
plt.scatter(x_10,y_10,label='10月份')
# 设置x,y轴刻度
_x=list(x_3)+list(x_10)
_xtick_lablels=["3月{}日".format(i) for i in x_3 ]
_xtick_lablels+=["10点{}分".format(i) for i in x_10]
# 数据长度,和单位长度必须保持一致,调整稀疏调整步长即可
plt.xticks(_x[::3],labels=_xtick_lablels[::3],rotation=45)#指明x轴刻度,旋转45度
# 添加图表的描述信息
plt.xlabel=('时间')
plt.ylabel=('温度 单位摄氏度')
plt.title('10点到12点每分钟的气温变化情况')
# 添加图例,提示 红色自己 蓝色同桌,位置0-7
plt.legend(loc=0)
# 添加网格,alpha透明度
plt.grid(alpha=0.4)
# 将绘制到的图表保存到本地,保存为标量图
plt.savefig('./zxt.png')
#展示
plt.show()
条形图
纵向条形图
from matplotlib import pyplot as plt
from matplotlib import rc
import random
#linux和Windows中字体设置中文显示的方法
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False #这两行需要手动设置
# 绘制折线图
a=['美国','中国','印度','俄罗斯','缅甸','韩国','日本','英国','法国','菲律宾']
b_15=[random.randint(100,500) for i in range(10)]
b_16=[random.randint(100,500) for i in range(10)]
b_17=[random.randint(100,500) for i in range(10)]
# 设置图片大小
plt.figure(figsize=(20,8),dpi=80)
bar_width=0.2 #柱子的宽度,每个柱子都要发生偏移
x_15=list(range(len(a)))
x_16=[ i+bar_width*1 for i in x_15]
x_17=[ i+bar_width*2 for i in x_15]
# 画图,将数据填充至图表, 图例,必须要标签 自定义风格,颜色,虚线,宽度,透明度
plt.bar(x_15,b_15,width=bar_width,label='3月15日')
plt.bar(x_16,b_16,width=bar_width,label='3月16日')
plt.bar(x_17,b_17,width=bar_width,label='3月17日')
# 设置x,y轴刻度
# 数据长度,和单位长度必须保持一致,调整稀疏调整步长即可
plt.xticks(x_15,a,rotation=45)#指明x轴刻度,旋转45度
# 添加图表的描述信息
plt.xlabel=('时间')
plt.ylabel=('温度 单位摄氏度')
plt.title('10点到12点每分钟的气温变化情况')
# 添加图例,提示 红色自己 蓝色同桌,位置0-7
plt.legend(loc=0)
# 添加网格,alpha透明度
plt.grid(alpha=0.4)
# 将绘制到的图表保存到本地,保存为标量图
plt.savefig('./zxt.png')
#展示
plt.show()
横向条形图
from matplotlib import pyplot as plt
from matplotlib import rc
import random
#linux和Windows中字体设置中文显示的方法
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False #这两行需要手动设置
# 绘制折线图
a=['美国','中国','印度','俄罗斯','缅甸','韩国','日本','英国','法国','菲律宾']
b=[random.randint(100,1000) for i in range(10)]
# 设置图片大小
plt.figure(figsize=(20,8),dpi=80)
# 画图,将数据填充至图表, 图例,必须要标签 自定义风格,颜色,虚线,宽度,透明度
plt.barh(range(len(a)),b,height=0.3,color='orange')
# 设置x,y轴刻度
# 数据长度,和单位长度必须保持一致,调整稀疏调整步长即可
plt.yticks(range(len(a)),a,rotation=45)#指明x轴刻度,旋转45度
# 添加图表的描述信息
plt.xlabel=('时间')
plt.ylabel=('温度 单位摄氏度')
plt.title('10点到12点每分钟的气温变化情况')
# 添加图例,提示 红色自己 蓝色同桌,位置0-7
plt.legend(loc=0)
# 添加网格,alpha透明度
plt.grid(alpha=0.4)
# 将绘制到的图表保存到本地,保存为标量图
plt.savefig('./zxt.png')
#展示
plt.show()
直方图
没有经过统计的数据,可以绘制直方图
from matplotlib import pyplot as plt
from matplotlib import rc
import random
#linux和Windows中字体设置中文显示的方法
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False #这两行需要手动设置
# 绘制折线图
a=[random.randint(60,200) for i in range(250)]
# 设置图片大小
plt.figure(figsize=(20,8),dpi=80)
# 分组,100个数字,5-12组
d=3
num_bins=max(a)-min(a)//d
# 画图,将数据填充至图表, 图例,必须要标签 自定义风格,颜色,虚线,宽度,透明度
plt.hist(a,num_bins)
# 设置x,y轴刻度
# 数据长度,和单位长度必须保持一致,调整稀疏调整步长即可
plt.xticks(range(min(a),max(a)+d,d))#指明x轴刻度,旋转45度
# 添加图表的描述信息
plt.xlabel=('时间')
plt.ylabel=('温度 单位摄氏度')
plt.title('10点到12点每分钟的气温变化情况')
# 添加图例,提示 红色自己 蓝色同桌,位置0-7
plt.legend(loc=0)
# 添加网格,alpha透明度
plt.grid(alpha=0.4)
# 将绘制到的图表保存到本地,保存为标量图
plt.savefig('./zxt.png')
#展示
plt.show()
百度Echarts