数据分析与展示---Matplotlib入门

简介:

一:Matplotlib库的介绍

(一)简单使用

二:区域划分subplot

三:plot函数

四:pyplot的中文显示

(一)方法一:修改rcParams参数

(二)方法二(推荐),在有中文地方增加属性:fontproperties

五:pyplot的文本显示方法

六:pyplot的子绘图区域

(一)subplot2grid()

(二)GridSpec类加上subplot方法


 

一:Matplotlib库的介绍

 

(一)简单使用

import matplotlib.pyplot as plt

plt.plot([3,1,4,5,2])
plt.ylabel("grade")
plt.show()

import matplotlib.pyplot as plt

plt.plot([3,1,4,5,2])
plt.ylabel("grade")
plt.savefig("test",dip=600)  #png文件,dpi修改输出质量
plt.show()

 

import matplotlib.pyplot as plt

plt.plot([0,2,4,6,8],[3,1,4,5,2])  #第一个列表是x轴列表,第二个是y轴列表
plt.ylabel("grade")
plt.axis([-1,10,0,6])  #前两个是x轴的取值范围-1到10,后两个是y轴取值范围0-6
plt.show()

 

二:区域划分subplot

 

注意:划分区域可以不使用','

import matplotlib.pyplot as plt
import numpy as np

def f(t):
    return np.exp(-t)*np.cos(2*np.pi*t)  #衰减曲线

a = np.arange(0.0,5.0,0.02)

plt.subplot(211)  #划分为两行一列,选取第一个区域
plt.plot(a,f(a))  #绘制衰减曲线

plt.subplot(2,1,2)  #在将绘图区域换到整个绘图区域的第二个,自动切换
plt.plot(a,np.cos(2*np.pi*a),'r--')  #绘制余弦曲线

plt.show()

 

 三:plot函数

 

import matplotlib.pyplot as plt
import numpy as np

a = np.arange(10)

plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5)  #每两个是一条曲线
plt.show()

当我们不选择线条形状为空时,可以变为其他非线性图

import numpy as np
import matplotlib.pyplot as plt

ax = plt.subplot()
ax.plot(10*np.random.randn(100),10*np.random.randn(100),'o')
ax.set_title("Simple Scatter")

plt.show()

如何控制颜色等曲线属性:通过参数format_string

import matplotlib.pyplot as plt
import numpy as np

a = np.arange(10)

plt.plot(a,a*1.5,'go-',a,a*2.5,'rx',a,a*3.5,'*',a,a*4.5,'b-.')
plt.show()

 

 

四:pyplot的中文显示

(一)方法一:修改rcParams参数

 

import matplotlib.pyplot as plt
import matplotlib

matplotlib.rcParams['font.family']='SimHei'

plt.plot([0,2,4,6,8],[3,1,4,5,2])#第一个列表是x轴列表,第二个是y轴列表
plt.ylabel("纵向轴")     #默认是不允许中文,会报错
plt.axis([-1,10,0,6])   #前两个是x轴的取值范围-1到10,后两个是y轴取值范围0-6
plt.show()

 

import matplotlib.pyplot as plt
import numpy as np
import matplotlib

matplotlib.rcParams['font.family'] = "SimHei"
matplotlib.rcParams['font.size'] = 20

a = np.arange(0.0,5.0,0.02)

plt.xlabel("横轴:时间")
plt.ylabel("纵轴:振幅")
plt.plot(a,np.cos(2*np.pi*a),'r--')

plt.show()

 

 

(二)方法二(推荐),在有中文地方增加属性:fontproperties

import matplotlib.pyplot as plt
import numpy as np

a = np.arange(0.0,5.0,0.02)

plt.xlabel("横轴:时间",fontproperties="SimHei",fontsize=20)
plt.ylabel("纵轴:振幅",fontproperties="SimHei",fontsize=20)
plt.plot(a,np.cos(2*np.pi*a),'r--')

plt.show()

 

五:pyplot的文本显示方法

import matplotlib.pyplot as plt
import numpy as np

a = np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2*np.pi*a),'r--')


plt.xlabel("横轴:时间",fontproperties="SimHei",fontsize=20,color="green")
plt.ylabel("纵轴:振幅",fontproperties="SimHei",fontsize=20)
plt.title(r'正弦波实例 $cons(2\pi x)$',fontproperties="SimHei",fontsize=15)
plt.text(2,1,r'$\mu=100$',fontsize=15) #2 1 是横纵坐标

plt.axis([-1,6,-2,2])
plt.grid(True)
plt.show()

 

 

plt.annotate(r"$\mu=100$",xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor="black",shrink=0.1,width=2)) #shrink是箭头两边到图像,文字之间的间隔(相对于箭头的比例)

 

六:pyplot的子绘图区域

上面使用了subplot进行了简单的区域划分,下面考虑复杂的绘图区域的划分

(一)subplot2grid()

(二)GridSpec类加上subplot方法

 

总结

 

posted @ 2018-07-11 10:50  山上有风景  阅读(461)  评论(0编辑  收藏  举报