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

  

 

 

 

 

 

  

 

  

     

  

  

 

posted @ 2019-11-06 15:30  Dark~Clearlove  阅读(467)  评论(0编辑  收藏  举报