Python数据可视化之Matplotlib(折线图)

 
一、使用Matplotlib生成数据图:是Python上的一个2D绘图库,它可以在跨平台上边出很多高质量的图像。
     1、Pycharm安装Matplotlib库
           (1)点击菜单上的“file” -> “settings”:
                

           (2)选中你的项目(比如thisyan Project),选中其下的“Project  Interpreter”:             
               
           (3)点击最右边的"+":
              
           (4)出现如下界面后,按照如图所示单击:
               

             (5)完成:
                 
    2、折线图  --------  plot
       (1)简单的折线图:
             import matplotlib.pyplot as plt

        x_data = ['2011','2012','2013','2014','2015','2016','2017']
        y_data = [58000,60200,63000,71000,84000,90500,107000]

         plt.plot(x_data,y_data)
         plt.show()
在matplotlib面向对象的绘图库中,pyplot是一个方便的接口。
plot()函数:支持创建单条折线的折线图,也支持创建包含多条折线的复式折线图----只要在调用plot()时传入多个分别代表X轴和Y轴数据的list列表即可
  (2)复式折线图:
      import matplotlib.pyplot as plt
      x_data = ['2011','2012','2013','2014','2015','2016','2017']
      y_data = [58000,60200,63000,71000,84000,90500,107000]
      y_data2 = [52000,54200,51500,58300,56800,59500,62700]

      plt.plot(x_data,y_data,color='red',linewidth=2.0,linestyle='--')
      plt.plot(x_data,y_data2,color='blue',linewidth=3.0,linestyle='-.')
      plt.show()

注:
       color  ------  指定折线的颜色
       linewidth   --------  指定折线的宽度
       linestyle   --------  指定折线的样式
        ‘  - ’ : 表示实线
        ’ - - ‘   :表示虚线
       ’ :  ‘:表示点线
       ’ - . ‘  :表示短线、点相间的虚线
       
    (3)管理图例:
          对于复式折线图,应该为每条折线添加图例,可以通过legend()函数来实现。该函数可传入两个list参数,其中第一个list参数(handles参数)用于引用折线图上的每条折线;第二个list参数(labels)代表为每条折线所添加的图例
     
   import matplotlib.pyplot as plt
   import matplotlib.font_manager as fm  #字体管理器

   x_data = ['2011','2012','2013','2014','2015','2016','2017']
   y_data = [58000,60200,63000,71000,84000,90500,107000]
   y_data2 = [52000,54200,51500,58300,56800,59500,62700]

   ln1, = plt.plot(x_data,y_data,color='red',linewidth=2.0,linestyle='--')
   ln2, = plt.plot(x_data,y_data2,color='blue',linewidth=3.0,linestyle='-.')

   my_font = fm.FontProperties(fname="/usr/share/fonts/wqy-microhei/wqy-microhei.ttc")

   plt.title("电子产品销售量",fontproperties=my_font) #设置标题及字体

   plt.legend(handles=[ln1,ln2],labels=['鼠标的年销量','键盘的年销量'],prop=my_font)

   ax = plt.gca()
  ax.spines['right'].set_color('none')  # right边框属性设置为none 不显示
  ax.spines['top'].set_color('none')    # top边框属性设置为none 不显示

   plt.show()
 
               

 



(4)管理多个子图:
   import matplotlib.pyplot as plt
   import numpy as np
   import matplotlib.gridspec as gridspec
   import matplotlib.font_manager as fm  #字体管理器

my_font = fm.FontProperties(fname="/usr/share/fonts/wqy-microhei/wqy-microhei.ttc")

plt.figure()

x_data = np.linspace(-np.pi,np.pi,64,endpoint=True)
gs = gridspec.GridSpec(2,3) #将绘图区分成两行三列
ax1 = plt.subplot(gs[0,:])#指定ax1占用第一行(0)整行
ax2 = plt.subplot(gs[1,0])#指定ax2占用第二行(1)的第一格(第二个参数为0)
ax3 = plt.subplot(gs[1,1:3])#指定ax3占用第二行(1)的第二、三格(第二个参数为1:3)

#绘制正弦曲线
ax1.plot(x_data,np.sin(x_data))
ax1.spines['right'].set_color('none')
ax1.spines['top'].set_color('none')
ax1.spines['bottom'].set_position(('data',0))
ax1.spines['left'].set_position(('data',0))
ax1.set_title('正弦曲线',fontproperties=my_font)

#绘制余弦曲线
ax2.plot(x_data,np.cos(x_data))
ax2.spines['right'].set_color('none')
ax2.spines['top'].set_color('none')
ax2.spines['bottom'].set_position(('data',0))
ax2.spines['left'].set_position(('data',0))
ax2.set_title('余弦曲线',fontproperties=my_font)

#绘制正切曲线
ax3.plot(x_data,np.tan(x_data))
ax3.spines['right'].set_color('none')
ax3.spines['top'].set_color('none')
ax3.spines['bottom'].set_position(('data',0))
ax3.spines['left'].set_position(('data',0))
ax3.set_title('正切曲线',fontproperties=my_font)
plt.show()

 




















posted @ 2019-05-15 16:21  #独狼  阅读(130339)  评论(0编辑  收藏  举报