Python笔记:matplotlib 基本应用

Python笔记:matplotlib 基本应用

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data  = pd.Series(np.random.randn(1000),index=np.arange(1000))
data = data.cumsum()   #逐步求和
data.plot()
plt.show()

Python笔记:matplotlib 基本应用_第1张图片

data  = pd.DataFrame(np.random.randn(1000,4),
                     index=np.arange(1000),
                     columns= list('ABCD'))
data.plot()
plt.show()
#做散点图
ax = data.plot.scatter(x='A',y='B',label='Class1')
data.plot.scatter(x='A',y='C',color='DarkGreen',label='Class2',ax = ax)#散点图 ,label取名
plt.show()

Python笔记:matplotlib 基本应用_第2张图片
Python笔记:matplotlib 基本应用_第3张图片
figure的使用:

x = np.linspace(-1,1,50)
y1 = 2 *x+1
y2 = x**2
plt.figure()
plt.plot(x,y1)
plt.figure(num=2,figsize=(8,5))
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth = 1.0,linestyle='--')
#linewidth 线宽度,linestyle 表达形式
plt.show()

Python笔记:matplotlib 基本应用_第4张图片
坐标轴的设置

x = np.linspace(-3,3,50)
y = x **2
plt.plot(x,y)
plt.xlim((-1,2))
plt.ylim((-2,3))
plt.xlabel('I am x')
plt.ylabel('I am y')
new_ticks=np.linspace(-1,2,5)
plt.xticks(new_ticks)
plt.yticks([-2,-1.8,-1,1.22,3],
           ['really bad','bad','normal','good','really good'])
ax = plt.gca()
ax.spines['right'].set_color('none')  #去掉上右边框
ax.spines['top'].set_color('none')
# ax.xaxis.set_ticks_position('bottom')
# ax.yaxis.set_ticks_position('left')
#移动坐标轴
ax.spines['bottom'].set_position(('data',0))#axes 定位在y的百分之几
ax.spines['left'].set_position(('data',0))

plt.show()

Python笔记:matplotlib 基本应用_第5张图片
设置标称

l1,=plt.plot(x,y2,label='up')
l2,=plt.plot(x,y1,color='red',linewidth = 1.0,linestyle='--',label='down')
plt.legend()

Python笔记:matplotlib 基本应用_第6张图片
或者`plt.legend(handles=[l1,l2],labels=[‘a’,‘b’],loc=‘best’)
Python笔记:matplotlib 基本应用_第7张图片
在图上标注的两种方式

x0=1
y0=2*x0+1
#scatter 点
plt.scatter(x0,y0,s=50,color='b')
#k表示颜色 lw宽度 点(x0,y0)到点(x0,0)
plt.plot([x0,x0],[y0,0],'k--',lw=2.5)
#标注1
plt.annotate(r'$2x+1=%s'%y0,xy=(x0,y0),
              xycoords='data',xytext=(+30,-30),
              textcoords='offset points',
              fontsize=16,arrowprops=dict(arrowstyle='->',
              connectionstyle='arc3,rad=.2'))
#connectionstyle弧度
#标注2
plt.text(-3.7,3,r'$This\ is\ the\ some\ text.\ \mu\ \sigma_i\ \alpha_t$')
#tick能见度
for label in ax.get_xticklabels() + ax.get_yticklabels():
    label.set_fontsize(12)
    label.set_bbox(dict(facecolor='white',edgecolor='red',alpha=0.2))
#alpha透明度
plt.show()

Python笔记:matplotlib 基本应用_第8张图片
散点图

n= 1024
x = np.random.normal(0,1,n)
y = np.random.normal(0,1,n)
t = np.arctan2(y,x)
plt.scatter(x,y,s=75,c=t,alpha=0.5)
plt.show()

Python笔记:matplotlib 基本应用_第9张图片
直方图


n =12
x = np.arange(n)
y1=(1-x/float(n))*np.random.uniform(0.5,1,n)
plt.bar(x,y1,facecolor ='#9999ff',edgecolor='white')
for x,y in zip(x,y1):
    plt.text(x,y+0.05,'%.2f'%y,ha='center',va='bottom')
plt.xlim(-.5,12)
plt.ylim(0,1.25)
plt.show()

Python笔记:matplotlib 基本应用_第10张图片
等高线图与3d图像的构建

def f(x,y):
    return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)
n =256
x=np.linspace(-3,3,n)
y=np.linspace(-3,3,n)
X,Y=np.meshgrid(x,y)  #网格
#contourf和contour的区别
#f:filled,也即对等高线间的填充区域进行填充(使用不同的颜色)
plt.contourf(X,Y,f(X,Y),8,alpha=0.75,cmap='hot')
#传递参数改变颜色,hot cool
C=plt.contour(X,Y,f(X,Y),8,colors='black',linewidths=.5)
# inline=True表示高度写在等高线上
plt.clabel(C,inline=True,fontsize=10)
plt.xticks()
plt.yticks()
plt.show()

####3D图像的构建
fig=plt.figure()
ax=Axes3D(fig)
x=np.arange(-4,4,0.25)
y=np.arange(-4,4,0.25)
X,Y=np.meshgrid(x,y)
R=np.sqrt(X**2+Y**2)
Z=np.sin(R)
ax.plot_surface(X,Y,Z,rstride=1,cstride=1,
                cmap=plt.get_cmap('rainbow'))
#rstride=1,cstride=1,行跨列跨
ax.contourf(X,Y,Z,zdir='z',offset=-2,cmap='rainbow')
#zdir=z 放在xy面
ax.set_zlim(-2,2 )#设置z的范围
plt.show()

Python笔记:matplotlib 基本应用_第11张图片
Python笔记:matplotlib 基本应用_第12张图片

你可能感兴趣的:(python)