本站消息

  出租广告位,需要合作请联系站长

  今日名言-想象你自己对困难作出的反应,不是逃避或绕开它们,而是面对它们,同它们打交道,以一种进取的和明智的方式同它们奋斗 。——马克斯威尔·马尔兹

  今日名言-用谅解、宽恕的目光和心理看人、待人。人就会觉得葱笼的世界里,春意盎然,到处充满温暖。——蔡文甫


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Python之matplotlib

发布于2021-07-25 07:37     阅读(922)     评论(0)     点赞(27)     收藏(4)


数据分析

什么是数据分析

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

数据分析的流程

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

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方法一般用于那些没有统计过的数据

原文链接:https://blog.csdn.net/qq_38380338/article/details/118364263



所属网站分类: 技术文章 > 博客

作者:小飞刀你有点飘

链接:http://www.pythonpdf.com/blog/article/513/be23fb07f9f7cf27556b/

来源:编程知识网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

27 0
收藏该文
已收藏

评论内容:(最多支持255个字符)