• python数据分析007_使用Matplotlib绘折线图


    一. 画图中中文显示

      1.如果想要Matplotlib显示中文我们可以使用三种方法:

         第一种:直接修改Matplotlib配置文件matplotlibrc 第二种:动态修改配置 第三种:设置自定义字体
      2.第三种eg:
    • %matplotlib inline
    • from matplotlib import pyplot as plt
    • from matplotlib import font_manager
    • import random
    • # 创建字体对象
    • my_font = font_manager.FontProperties(fname='/data/course_data/data_analysis/STSONG.TTF',size=18)
    • x = range(0,120)
    • y = [random.randint(10,30) for i in range(120)]
    • # 添加字体属性
    • plt.ylabel("次数",fontproperties=my_font)
    • plt.xlabel("时间",fontproperties=my_font)
    • # 设置标题
    • plt.title('每分钟跳动次数',fontproperties=my_font)
    • plt.plot(x,y)
    • plt.show()

    二. 自定义X轴刻度

      1.画图时刻度可能显示不全,造成这个问题的原因是:

    • 刻度的文字过长,但是图片的宽度不够。
    • x轴和y轴刻度会默认根据x值和y值生成,并且Matplotlib默认会生成它认为合适的刻度间距。

      2.使用plt.xticks()这个方法自定义x轴的刻度

    • xticks(locs, [labels], **kwargs) 
    • locs参数为数组参数,表示x-axis的刻度线显示标注的地方,即ticks放置的地方,第二个参数也为数组参数,表示在locs数组表示的位置添加的标签。

      3.plt.xticks(range(0,len(x),3),x[::3],rotation=45)       plt.yticks(range(0,max(count),10),range(0,max(count),10))

    • range(0,len(x),3)为xticks()的第一个参数,根据x值的个数调整x轴的刻度疏密程度。
    • x[::3]为xticks()的第二个参数,还是使用x的值作为刻度的标签值,但是这里获取了其中的一部分,确保第一个参数和第二个参数的个数相同。
    • rotation=45默认刻度的值是横向书写的,这样会有一定的重叠,所以我们将文字进行旋转操作,45位旋转的度数。
      4.matplotlib 中设置图形大小
    • plt.figure(figsize=(a, b), dpi=dpi)
    • 其中: - figsize 设置图形的大小,a 为图形的宽, b 为图形的高,单位为英寸 - dpi 为设置图形每英寸的点数,即每英寸多少个像素
     三.一图多线
      1.一个坐标系中绘制两条折线,只需要使用两次plt.plot()方法就可以了。
    • # 绘制开盘价折线
    • plt.plot(x,y)
    • # 绘制收盘价折线
    • plt.plot(x,z)
       2.添加图例
    • my_font = font_manager.FontProperties(fname='/data/course_data/data_analysis/STSONG.TTF')
    • plt.plot(x,y,label='开盘价')
    • plt.plot(x,z,label='收盘价')
    • plt.legend(prop=my_font)
         plt.legend(prop=my_font)是添加图例的方法,prop=my_font参数是设置图例上中文显示的属性,另外一个比较重要的是,图例上显示的文字我们需要添加在plt.plot(x,y,label='开盘价')方法的label属性中。
      3.添加网格
        代码plt.grid(alpha=0.4),这行代码就是添加网格的效果,这里面的alpha=0.4是设置网格线的透明度,范围是(0~1)。绘制网格的作用就是为了辅助我们更好的观察数据的x值和y值。

     四.一图多个坐标系子图

       1.调用plt.subplot()函数就可以在画布上创建一个子图,plt.subplot()的使用方法如下:
    • plt.subplot(nrows, ncols, index)

       函数的 nrows 参数指定将数据图区域分成多少行;ncols 参数指定将数据图区域分成多少列;index 参数指定获取第几个区域。

    • plt.subplot(2, 2, 1)
    • plt.plot(y)
    • plt.title('Axes1')
    • #第二个子图
    • # 折线图,y轴每个数据的立方
    • plt.subplot(2, 2, 2)
    • plt.plot(y**3)
    • plt.title('Axes2')
    • #第三个子图
    • # 折线图,x轴和y轴均指定数据
    • plt.subplot(2, 2, 3)
    • plt.plot(x,y)
    • plt.title('Axes3')
     五.总结
     
     
  • 相关阅读:
    mysql远程登录
    cmd中不能使用中文输入法解决方法
    dedecms sphinx 配置
    Docky需要混合窗口管理器才能工作,请启用混合窗口管理器后重新启动Docky.
    PHPCGI 进程 CPU 100% 与 file_get_contents 函数的关系
    MySQL MyISAM索引类型分析和优化
    ubuntu配置jdk7.0过程
    基于角色的用户权限设计的问题,大家探讨下
    工厂支持多数据库开发的三层结构模式随笔(一)
    分页利器 AspNetPager常用属性
  • 原文地址:https://www.cnblogs.com/fanshudada/p/12925097.html
Copyright © 2020-2023  润新知