python数据分析复盘——数据分析相关库之Matplotlib

来源:互联网 发布:新东方网络英语 编辑:程序博客网 时间:2024/06/07 04:52

1.Matplotlib简介

1.1 概念

  • matplotlib是一个2D作图库,提供了方便的接口,使用户可以轻松的掌控图形的格式。
  • Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发,matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式

1.2 基础用法

import matplotlib.pyplot as pltplt.plot([5,2,1,2,5])plt.ylabel("y label")plt.xlabel("x label")plt.title("Title")plt.show()

这里写图片描述

2.绘图区域

这里写图片描述

import matplotlib.pyplot as plt#plt.subplot(211)表示划分为2行1列的区域,当前为第一个区域。区域数从上到下从左到右递增。plt.subplot(211)plt.plot([5,2,1,2,5])plt.ylabel("y label")plt.xlabel("x label")plt.title("Title11")plt.subplot(212)plt.plot([9,6,2,6,9])plt.ylabel("y label")plt.xlabel("x label")plt.title("Title 12")plt.show()

这里写图片描述


3.pyplot的plot()函数

3.1 基础使用

这里写图片描述

import numpy as npa = np.arange(10)plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5)plt.title('more(x,y,format_string)')plt.show()

这里写图片描述


3.2 控制曲线的格式字符串(format_string)

由颜色字符、风格字符和标记字符组成:
这里写图片描述

这里写图片描述

#效果图如作右上import numpy as npa = 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 npa = np.arange(10)plt.plot(a,a*1.5,':yo',a,a*2.5,'rv-',a,a*3.5,'cx-.',a,a*4.5,'md-')plt.title('mixing format_strings')plt.show()

这里写图片描述

4.pyplot中文显示

两种方式:
1.设置全局字体,应用在全部文字上
2.在设置标题等文字时修改foot相关属性,局部应用

import numpy as npimport matplotliba = np.arange(10)#法1设置支持中文的字体(全局应用)# #rcparams属性 font.family font.style font.size matplotlib.rcParams['font.family']='SimHei'#polt必须在rcParams之后,否则字体设置无效plt.plot(a,a*1.5,':yo',a,a*2.5,'rv-',a,a*3.5,'cx-.',a,a*4.5,'md-')plt.title('通过rcParams设置字体后')plt.xlabel("全局字体")plt.ylabel("局部设置,局部应用",fontproperties='YouYuan',fontsize=20)plt.show()

这里写图片描述


5.专业显示(更多的说明)

#除了基础的,标题XY标签、字体和颜色#还增加了数学字符、注释a=np.arange(0.0,5.0,0.02)plt.plot(a,np.cos(2*np.pi*a),'r--')plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=15,color='green')plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=15,color='green')            #    ↓↓↓↓↓↓↓主要看下面↓↓↓↓↓↓↓#用$$把含有数学字符的公式包起来,就可以显示出对应的字符。 plt.title('正弦波实例 $y=cos(2\pi x)$',fontproperties='SimHei',fontsize=25)#在对应坐标显示文本plt.text(3,1,'$\mu=100$',fontsize=15)#显示文本指向对应坐标plt.annotate(r'$\mu=100$',xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor='black',shrink=0.1,width=2))plt.axis([-1,6,-2,2])plt.grid(True)plt.show()plt.textplt.annotate(s,xy=arrow_crd,xytext=text_crd,arrowprops=dict)

这里写图片描述

6.基础图表函数


import matplotlib.pyplot as pltimport numpy as np# 1.饼图sizes=[15,30,45,10]explode=(0,0.1,0,0)labels='Frogs','Hogs','Dogs','Logs'plt.pie(sizes,explode,labels,autopct='%1.1f%%',shadow=False,startangle=90) #autopct表示百分数方式percentageplt.axis('equal') #正面饼图plt.show()# 2.直方图np.random.seed(0)mu,sigma=100,20a=np.random.normal(mu,sigma,size=100)plt.hist(a,bins=50,normed=1,histtype='stepfilled',facecolor='c',alpha=0.75)#bins,数据等分的量,就是条形的数量#normed为真(1)显示的是频数#alpha 为灰度值plt.title('直方图',fontproperties='YouYuan',fontsize=20)plt.show()# 3.极坐标图N = 10 #数量theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)radii = 10 * np.random.rand(N)width = np.pi / 2 * np.random.rand(N)#面向对象作图ax = plt.subplot(111, projection='polar')bars = ax.bar(left=theta, height=radii, width=width, bottom=0.0)# left:起始绘制位置# height:bar的高度# width:角度# Use custom colors and opacityfor r, bar in zip(radii, bars):    bar.set_facecolor(plt.cm.viridis(r / 10.))    bar.set_alpha(0.5)plt.show()# 4.散点图# matplot推荐使用该方法绘制(面向对象)fig,ax=plt.subplots()ax.plot(10*np.random.randn(100),10*np.random.randn(100),'o')ax.set_title('面向对象绘制散点图',fontproperties='YouYuan',fontsize=20)plt.show()

这里写图片描述
更多图表请参考:

1.Matplotlib Gallery
2.Matplotlib Examples


本文大纲和部分内容均摘自:Python数据分析与展示

原创粉丝点击