Python之matplotlib

数据分析

什么是数据分析

  数据分析是用适当的方法对收集来的大量数据进行分析,帮助人们作出判断,以便采取适当行动

数据分析的流程

提出问题
准备数据
分析数据
获得结论
成果可视化
...

matplotlib

什么是matplotlib

matplotlib:最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建

为什么要学习matplotlib

  1. 能将数据进行可视化,更直观地呈现
  2. 使数据更加客观、更具说服力

matplotlib基本要点

  • 导入pyplot绘图模块
  from matplotlib import pyplot as plt
  • 设置图片大小
fig = plt.figure(figsize=(20, 8), dpi=80)    

①figure是图形图标的意思,这里指我们画的图
②通过实例化一个figure并且传递参数,能够在后台自动使用该figure实例
③figsize : 图片大小参数,是一个元组,(20, 8)指的是宽20,高8
④dpi : dots per inch每英寸上点的个数,在图像模糊的时候可以传入dpi参数,让图片更加清晰

  • 设置坐标轴刻度
plt.xticks(ticks, [labels], **kwargs)

xticks()函数:
ticks:数组类型,用于设置X轴刻度间隔
[labels]:数组类型,用于设置每个间隔的显示标签
**kwargs:用于设置标签字体倾斜度和颜色等外观属性。(注:python里的双星号代表这个位置接收任意多个关键字参数)

【yticks()函数与上面一致】

  1. 仅设置ticks参数
x = range(1, 6, 1)    
y = [15, 13, 14.5, 17, 20]
plt.xticks(x)   # x轴
plt.yticks(range(min(y),max(y)+1))   # y轴,+1是由于取数左闭右开

   x轴刻度的步长可通过range(1, 6, 1)第三个参数进行调整,但对于range函数,第三个参数只可取整数,而不可取浮点数,此时可将range类型转换成list类型控制步长
仅设置ticks参数

  1. ticks和[labels] 同时设置
x = range(1, 6, 1) 
xtick_label = ['a', 'b', 'c', 'd', 'e']
plt.xticks(x, xtick_label)   
plt.yticks(range(min(y),max(y)+1))   # y轴,+1是由于取数左闭右开

ticks和[labels] 同时设置

  1. **kwargs参数

    rotation:x轴刻度旋转的度数

  • 添加描述信息
plt.xlabel("x轴名称")
plt.ylabel("y轴名称")
plt.title("图表名称")
  • 添加网格
plt.grid(alpha=0.4)

alpha参数用于设置网格透明度,取值范围为[0, 1]

  • 自定义绘制图形的风格
plt.plot(
        x,                   # x
        y,                   # y
        color='r',           # 线条颜色
        linestyle='--',      # 线条风格
        linewidth=5,         # 线条粗细
        alpha=0.5            # 透明度
       )  
颜色字符风格字符
r 红色- 实线
g 绿色– 虚线,破折线
b 蓝色-. 点划线
w 白色: 点虚线,虚线
c 青色’ '留空或空格,无线条
m 洋红
y 黄色
k 黑色
#00f00 16进制
0.8 灰度值字符串
  • 添加图例
plt.legend(prop,loc="best")

通过prop指定图例的字体
 通过loc指定图例的位置,默认右上角

  • 保存图片
plt.savefig("./sig_size.png")  

可以保存为svg这种矢量图格式,放大不会有锯齿

from matplotlib import pyplot as plt
x = range(1, 6, 1)    # 数据在x轴的位置,是一个可迭代对象
y = [15, 13, 14.5, 17, 20]    # 数据在y轴的位置,是一个可迭代对象

# 设置图片大小
fig = plt.figure(figsize=(20, 8), dpi=80) 

# 绘图
plt.plot(x, y, labels="图例")

# 设置x轴的刻度
plt.xticks(x)

# 绘制网格
plt.grid()

# 添加图例
plt.legend()

# 保存    
plt.savefig("./sig_size.png")  

# 展示图形   
plt.show()      

matplotlib的散点图、条形图、直方图

  • 散点图:用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。
    特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律)
plt.scatter()

参数设置与plt.plot()类似

  • 条形图:排列在工作表的列或行中的数据可以绘制到条形图中。
    特点:绘制离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计)
plt.bar()    # 竖着的条形图
plt.barh()   # 横着的条形图

参数设置与plt.plot()类似,barh中的height参数等同width参数

  • 直方图:由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据范围,纵轴表示分布情况。
    特点:绘制连续性的数据,展示一组或者多组数据的分布状况。(统计)

    把数据分为多少组进行统计?

    组数要适当,太少有较大的统计误差,太多规律不明显。当数据在100个以内时,按数据多少常分为5-12组。

    • 应用场景

      ①用户的年龄分布状态
      ②一段时间内用户点击次数的分布状态
      ③用户活跃时间的分布状态

bin_width = 3    # 设置组距为3
num_bins = int((max(a)-min(a))/bin_width)   # 分为多少组

# (1)传入需要统计的数据以及组数即可
plt.hist(a, num_bins)

# (2)可以传入一个列表,长度为组数,值为分组依据,当组距不均匀时使用
plt.hist(a, [min(a)+i*bin_width for i in range(numbins)])

# (3)normed:bool 是否绘制频率分布直方图,默认为频数直方图
plt.hist(a, num_bins, normed = 1)

plt.xticks(list(range(min(a), max(a))[::bin_width],rotation=45)
plt.grid(True, linestyle = "-.", alpha=0.5)

plt.hist方法一般用于那些没有统计过的数据

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值