Python_数据分析_matplotlib绘图

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系统

image-20210306165334457

image-20210306165601966

画图

折线图

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()

matplotlib更多图形样式

百度Echarts

合并坐标轴

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值