matplotlib

(一)Matplotlib数据可视化基本使用方法

(1)Matplotlib介绍        matplotlib图的类型:条形图(Bar graph),直方图(Histogram),散点图(Scatter plot),面积图(area plot),饼图(pie plot)

matplotlib.pyplot是一个用于python的2D图形绘制库,他可以在python脚本,shell,web应用程序服务器和其他图形用户界面工具包中使用。

有几个工具包可以扩展python matplotlib功能,其中一些是单独下载,其它可以与matplotlib源代码一起提供,

Basemap:地图绘制工具包,包含各种地图投影,海岸线和政治边界,

cartopy:它是一个映射库,具有面向对象的地图投影定义,以及任意点,线,多边形和图像个转换功能。

Excel tool:matplotlib提供与excel交换数据的应用程序,

MPlot3d:用于三维图

Natgrid:他是一个natgrid库的接口,用于对间隔数据进行不规则网格化。

#导入Matploylib库
from matplotlib import pyplot as plt  
#在notebook中画图
%matplotlib inline    
#画布上画图
plt.plot([1,2,3],[4,5,1])      
#在画布上显示
plt.show()

 加上相应的样式

from matplotlib import pyplot as plt
from matplotlib import style
style.use("ggplot")
plt.plot([1,2,3],[3,2,1],'r',label='line one',linewidth=5)
plt.plot([2,3,4],[3,2,4],'y',label='line two',linewidth=5)
plt.title('goldstine')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.grid(True,color='r')
plt.show()

 小结:首先介绍matplotlib的相关第三方工具包,然后3行绘制一个图,3行添加标题,坐标标签;然后添加样式网格和legend()

(二)条形图(Bar graph)

import matplotlib.pyplot as plt
plt.bar([0.25,1.25,2.25,3.25,4.25],[10,20,30,40,50],color='g',label='BMW',width=.5)
plt.bar([0.75,1.75,2.75,3.75,4.75],[30,40,50,60,70],color='r',label='audi',width=.5)
plt.title('goldstine')
plt.legend()
plt.xlabel('x')
plt.ylabel('y')
plt.show()

(三)直方图(Histogram)

import matplotlib.pyplot as plt
population_age=[22,55,62,45,21,22,34,42,42,4,2,102,95,85,55,110,120,70,65,55,111,115,80,75,65,54,44,43,42,4]
bins=[0,10,20,30,40,50,60,70,80,90,100]
plt.hist(population_age,bins,histtype='bar',color='r',rwidth=0.8)
plt.title('population_age')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

 (四)散点图(scatter plot)     用于反应两个变量的相关性

import matplotlib.pyplot as plt
x=[1,2,3,4,5,6,7,8,9,10]
y=[1,1,1,1,1,1,1,1,1,1]
xx=[10,9,8,7,6,5,4,3,2,1]
yy=[3,3,3,3,3,3,3,3,3,3]
plt.scatter(x,y,label='first scatter',color='y')
plt.scatter(xx,yy,label='second scatter',color='r')
plt.title('goldstine')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.show()

 (五)面积图   面积图也被称为堆栈图(stack plot)反映一个整体的多个相关组随时间的变化,(eatting,sleeping,working、playing)

plt.stackplot(days,sleeping,eating,working,playing,color=[])

  

import matplotlib.pyplot as plt
days = [1,2,3,4,5]  
sleeping =[7,8,6,11,7]
eating = [2,3,4,3,2]
working =[7,8,7,2,2]
playing = [8,5,7,8,13]  
#plt.plot([],[],color='m', label='Sleeping', linewidth=5)
#plt.plot([],[],color='c', label='Eating', linewidth=5)    #创建空的线,单纯是要创建右上角的标签
#plt.plot(days,working,color='r', label='Working', linewidth=5)
#plt.plot([],[],color='k', label='Playing', linewidth=5)  
plt.stackplot(days, sleeping,eating,working,playing, colors=['m','c','r','k'])  
plt.xlabel('x')
plt.ylabel('y')
plt.title('Stack Plot')
plt.legend(["sleeping","eating","working","playing"])
plt.show()

 (六)饼图(pie plot)

import matplotlib.pyplot as plt 
slices = [7,2,2,13]
activities = ['sleeping','eating','working','playing']
cols = ['c','m','r','b'] 
plt.pie(slices,  labels=activities,  colors=cols,  startangle=90,  shadow= True,  explode=(0,0.1,0,0),  autopct='%.1f%%') 
#startangle开始绘制的角度,shadow是否有阴影,explode突出的部分,autopct数值保留几位小数点
plt.title('Pie Plot')
plt.show()

 (七)多图合并

import numpy as np
import matplotlib.pyplot as plt 
def f(t):    
    return np.exp(-t) * np.cos(2*np.pi*t)
t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)
plt.subplot(221)
plt.plot(t1, f(t1), 'bo',t2, f(t2))          #bo是加上圆点,t2,f(t2)是加上曲线
#plt.plot(t1, f(t1))
plt.subplot(222)
plt.plot(t2, np.cos(2*np.pi*t2))
plt.show()

  

参考:https://www.cnblogs.com/zyg123/p/10504640.html

 https://blog.csdn.net/missyougoon/article/details/90399938

posted @ 2020-09-27 23:59  goldstine  阅读(51)  评论(0)    收藏  举报