• Matplotlib的基本用法


    三层结构:

      容器层:①画板层②画布层③绘图区

      辅助显示层

      图像层

    可绘制的集中图像及应用场景:

      折线图plot:图像的变化规律

      散点图scatter:关系/规律

      柱状图bar:统计/对比

      直方图histogram:分布情况

      饼图:占比

    使用Matplotlib进行画图操作,首先需要导入matplotlib.pyplot进行操作,通常导入操作为:

      import matplotlib.pyplot as plt

      #创建画布 相当于开辟内存

      plt.figure()

      #设定画图的点 前面是对应点的横坐标,后面是对应点的纵坐标

      plt.plot([1,0,9],[4,5,6])

      #将图像进行展示

      plt.show()

    使用方法:

      #创建画布

      plt.figure(figsize=(length,width),dpi=)

      figsize:指定图的长宽(length,width)

      dpi:图像的清晰度 每英寸多少个点

      返回fig对象

      #保存图像

      plt.savefig(path)

      代码需写在show前面,写在之后会保存空的图像

      #修改x,y的刻度

      plt.xticks(x,**kwargs)

      x:要显示的刻度值

      plt.yticks(y,**kwargs)

      y:要显示的刻度值

      实例:x_label = ["11点{}分".format(i) for i in x]

         plt.xticks(x[::5], x_label[::5])

      #添加网格显示

      plt.grid(True,linestyle="--",alpha=0.5)

      True:确认添加网格

      linestyle:线条的风格

      alpha:透明度

      #给X轴添加标签

      plt.xlabel()

      #给Y轴添加标签

      plt.ylabel()

      #给整个表格添加标题

      plt.title()

      #绘制图像

      plt.plot(x,y,color,linestyle,label)

      x,y:横纵坐标

      color:设置绘制图像的颜色

      linestyle:线条风格 默认为实线

      label:为绘制的图设置标签(没有使用显示图例不会显示)

      #显示图例

      plt.legend(loc)

      loc:通过传入数据来控制图例的位置

      #创建绘图区

      plt.subplots(nrows=1,ncols=1,**fig_kw)

      返回值:figure(画布),axes(绘图区)

      可以定义figsize,dpi等

      #在多个绘图区的情况下,面向对象编程,使用绘图区的方法

      

      实例:

      axes[0].plot(x, y_shanghai, color="r", linestyle="-.", label="上海")
      axes[1].plot(x, y_beijing, color="b", label="北京")

      # 显示图例
      axes[0].legend()
      axes[1].legend()

      # 修改x、y刻度
      # 准备x的刻度说明
      x_label = ["11点{}分".format(i) for i in x]
      axes[0].set_xticks(x[::5])
      axes[0].set_xticklabels(x_label)
      axes[0].set_yticks(range(0, 40, 5))
      axes[1].set_xticks(x[::5])
      axes[1].set_xticklabels(x_label)
      axes[1].set_yticks(range(0, 40, 5))

      # 添加网格显示
      axes[0].grid(linestyle="--", alpha=0.5)
      axes[1].grid(linestyle="--", alpha=0.5)

      # 添加描述信息
      axes[0].set_xlabel("时间变化")
      axes[0].set_ylabel("温度变化")
      axes[0].set_title("上海11点到12点每分钟的温度变化状况")
      axes[1].set_xlabel("时间变化")
      axes[1].set_ylabel("温度变化")
      axes[1].set_title("北京11点到12点每分钟的温度变化状况")

      

      #绘制散点图

      plt.scatter(x,y)

      x:横坐标

      y:纵坐标

      #绘制柱状图

      plt.bar(x,y,width,align="center",**kwargs)

      x:横坐标

      y:纵坐标

      color:可以传入列表,给柱状图按照顺序赋予颜色

      绘制两个相邻的柱状图,可以使用两次bar函数,但是需要对两个bar函数x值进行调整

      #绘制直方图:

      plt.hist(x,bins=None,density=None,**kwargs)

      x:需要进行分布状况研究的目标数据

      bins:组数,指的是需要分为多少组 (最大值-最小值)//组距

      density:使用频率代替纵坐标

      #绘制饼图

      plt.pie(x,labels=,autopct=,colors)

      x:数量,自动算百分比

      labels:每部分名称

      autopct:占比显示指定%1.2f%%

      colors:每部分颜色

      #调整饼图的长宽,使之成为正圆

      plt.axis("equal")

      

      

      

         

      

      

  • 相关阅读:
    【HNOI2016模拟4.14】B
    【NOIP2010提高组】引水入城
    【NOIP2010提高组】机器翻译
    【NOIP2010提高组】乌龟棋
    【NOIP2010提高组】关押罪犯
    【USACO题库】3.3.2 Shopping Offers商店购物
    【USACO题库】3.1.5 Contact联系
    【USACO题库】3.1.4 Shaping Regions形成的区域
    【USACO题库】3.1.3 Humble Numbers丑数
    c语言学习——printf格式规定符
  • 原文地址:https://www.cnblogs.com/zx931880423/p/11766056.html
Copyright © 2020-2023  润新知