赞
踩
一、Matplotlib简介及图表窗口
Matplotlib是一个python版的matlab绘图接口,以2D为主,支持python、numpy、pandas基本数据结构,其特点为运营高效且具有丰富的图表库。
1、利用plt.show()来生成图表
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 图表窗口1 → plt.show()
plt.plot(np.random.rand(10))
plt.show()
# 直接生成图表
2、魔法函数
# 图表窗口2 → 魔法函数,嵌入图表
% matplotlib inline
x=np.random.randn(1000)
y=np.random.rand(1000)
plt.scatter(x,y)
# plt.show()
# 直接嵌入图表,不用plt.show()
# 代表该图表对象
使用了matplotlib inline之后就不需要再输入plt.show()了
3、可交互窗口
# 图表窗口3 → 魔法函数,弹出可交互的matplotlib窗口
%matplotlib notebook
s=pd.Series(np.random.rand(100))
s.plot(style='k--o',figsize=(10,5))
# 可交互的matplotlib窗口,不用plt。show()
# 可以做一定的调整左右箭头的意思是可以切换左右的窗口,十字箭头的功能是移动视图,方形按钮是用来放大某一块图片区域的,最后一个功能是保存图片
4、可交互性控制台
# 图表窗口4 → 魔法函数,弹出matplotlib控制台
%matplotlib qt5
df=pd.DataFrame(np.random.rand(50,2),columns=['A','B'])
df.hist(figsize=(12,5),color='g',alpha=0.8)
# 可交互性控制台
# 如果已经设置了显示方式(比如notebook),需要重启然后运行魔法函数
# 网页嵌入的交互性窗口 和 控制台,只能显示一个
# plt.close()
# 每次清空图标内内容
二、图表的基本元素
1、图名,图例,轴标签,轴边界,轴刻度,轴刻度标签等
df=pd.DataFrame(np.random.rand(10,2),columns=['A','B'])
f=plt.figure(figsize=(10,10))
fig=df.plot(figsize=(6,4))
# figsize:创建图表窗口,设置窗口大小
# 创建图标对象,并赋值给fig
print(fig,type(fig))
print(f,type(f))
# title 表名
plt.title('xupeng')
# x轴y轴标签
plt.xlabel('x1')
plt.ylabel('y1')
# 图例的显示方式以及显示位置
plt.legend(loc='upper right')
# 'best':0,(only implemented for axes legends)(自适应方式)
# 'upper right':1
# 'upper left': 2
# 'lower left': 3
# 'lower right': 4
# 'right': 5
# 'center right': 6
# 'lower center': 8
# 'upper center': 9
# 'center': 10
plt.xlim([0,12]) # x轴边界
plt.ylim([0,1.5]) # y轴边界
plt.xticks(range(10)) # 设置x刻度
plt.yticks([0,0.2,0.4,0.6,0.8,1.0,1.2]) # 设置y刻度
fig.set_xticklabels("%.1f"%i for i in range(10)) # x轴刻度标签
fig.set_yticklabels("%.2f"%i for i in [0,0.2,0.4,0.6,0.8,1.0,1.2]) # y轴刻度标签
# 范围只限定图表的长度,刻度则是决定显示的标尺 → 这里x轴的范围是0~12,但刻度只有0~9,刻度标签使得其显示一位小数
# 轴标签则是显示刻度的标签
2、其他元素可视性
x=np.linspace(-np.pi,np.pi,256,endpoint=True)
c,s=np.cos(x),np.sin(x)
plt.plot(x,c)
plt.plot(x,s)
# 通过ndarry创建图表
# 创建格网
# plt.grid()
plt.grid(True,linestyle='--',color='gray',linewidth='0.5',axis='x')
# 显示网格
# linestyle: 线型
# color: 颜色
# linewidth: 宽度
# axis:x,y,both,显示x/y两者的格网
plt.tick_params(bottom='on',top='off',left='on',right='off')
# 刻度显示
import matplotlib
matplotlib.rcParams['xtick.direction']='in'
matplotlib.rcParams['ytick.direction']='inout'
# 设置刻度的方向,in,out,inout,即刻度是在图里面,外面还是中间
# 这里需要导入matplotlib,而不是仅仅导入matplotlib.pyplot
# frame=plt.gca()
# plt.axis('off')
# 关闭坐标这
# frame.axes.get_xaxis().set_visible(False)
# frame.axes.get_yaxis().set_visible(False)
# x/y不可见
三、图表的样式参数
1、linestyle参数
# linestyle参数
plt.plot([i**2 for i in range(100)],
linestyle='-.')
# '-' solid line style
# '--' dashed line style
# '-.' dash-dot line style
# ':' dotted line style
2、marker参数
# marker 参数
s= pd.Series(np.random.randn(100).cumsum()) # cumsum() 累计求和
s.plot(linestyle='--',
marker='.')
# '.' point marker
# ',' pixel marker
# 'o' circle marker
# 'v' triangle_down marker
# '^' triangle_up marker
# '
# '>' triangle_right marker
# '1' tri_down marker
# '2' tri_up marker
# '3' tri_left marker
# '4' tri_right marker
# 's' square marker
# 'p' pentagon marker
# '*' star marker
# 'h' hexagonl marker
# 'H' hexagon2 marker
# '+' plus marker
# 'x' x marker
# 'D' diamond marker
# 'd' thin_diamond marker
# '/' vline marker
# '_' hline marker
3、color参数
# color 参数
plt.hist(np.random.randn(100),
color='g',alpha=0.8)
# alpha:0-1,透明度
# 常用颜色简写:red-r,green-g,black-b,yellow-y
df=pd.DataFrame(np.random.randn(1000,4),columns=list('ABCD'))
df=df.cumsum()
df.plot(style='--.',alpha=0.8,colormap='GnBu')
# colormap:颜色板,包括很多选项
# 颜色参数自行查找
4、style参数
# style 参数,可以包含linestyle,marker,color
ts=pd.Series(np.random.randn(1000).cumsum(),index=pd.date_range('1/1/2000',periods=1000))
ts.plot(style='--g.',grid=True)
# style → 风格字符串,这里包含了linestyle(-),marker(.),color(g)
# plot()内也有grid参数
5、整体风格样式
# 整体风格样式
import matplotlib.style as psl
print(plt.style.available)
# 查看样式列表
psl.use('ggplot')
ts = pd.Series(np.random.randn(1000).cumsum(),index=pd.date_range('1/1/2000',periods=1000))
ts.plot(style='--g.',grid=True,figsize=(10,6))
# 一旦选用样式后,所有图表都会有样式,重启后才能关掉
四、刻度,注解,图表输出
1、刻度
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
t=np.arange(0.0,100.0,1)
s=np.sin(0.1*np.pi*t)*np.exp(-t*0.01)
ax=plt.subplot(111) # 注意:一般都在ax种设置,不在plot中设置
plt.plot(t,s,'--*')
plt.grid(True,linestyle='--',color='
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。