python画曲线图-Python数据可视化之Matplotlib(折线图)

一、使用Matplotlib生成数据图:是Python上的一个2D绘图库,它可以在跨平台上边出很多高质量的图像。

1、Pycharm安装Matplotlib库

(1)点击菜单上的"file” -> "settings”:

python画曲线图-Python数据可视化之Matplotlib(折线图)

(2)选中你的项目(比如thisyan Project),选中其下的"Project Interpreter”:

python画曲线图-Python数据可视化之Matplotlib(折线图)

(3)点击最右边的"+":

python画曲线图-Python数据可视化之Matplotlib(折线图)

(4)出现如下界面后,按照如图所示单击:

python画曲线图-Python数据可视化之Matplotlib(折线图)

(5)完成:

python画曲线图-Python数据可视化之Matplotlib(折线图)

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 -------- 指定折线的样式

" - ’ : 表示实线

’ - - " :表示虚线

’ : ":表示点线

’ - . " :表示短线、点相间的虚线

python画曲线图-Python数据可视化之Matplotlib(折线图)

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

python画曲线图-Python数据可视化之Matplotlib(折线图)

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

python画曲线图-Python数据可视化之Matplotlib(折线图)