matplotlib从入门到精通教程Word文档格式.docx
- 文档编号:18670209
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:9
- 大小:19.66KB
matplotlib从入门到精通教程Word文档格式.docx
《matplotlib从入门到精通教程Word文档格式.docx》由会员分享,可在线阅读,更多相关《matplotlib从入门到精通教程Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
C'
D'
E'
F'
G'
H'
]
plt.bar(x,y,tick_label=label);
8.绘制一个水平方向柱状图
plt.barh(x,y,tick_label=label);
9.绘制1000个随机值的直方图
data=np.random.randn(1000)
plt.hist(data);
10.设置直方图分30个bins,并设置为频率分布
plt.hist(data,bins=30,histtype='
stepfilled'
density=True)
plt.show();
11.在一张图中绘制3组不同的直方图,并设置透明度
x1=np.random.normal(0,0.8,1000)
x2=np.random.normal(-2,1,1000)
x3=np.random.normal(3,2,1000)
kwargs=dict(alpha=0.3,bins=40,density=True)
plt.hist(x1,**kwargs);
plt.hist(x2,**kwargs);
plt.hist(x3,**kwargs);
12.绘制一张二维直方图
mean=[0,0]
cov=[[1,1],[1,2]]
x,y=np.random.multivariate_normal(mean,cov,10000).T
plt.hist2d(x,y,bins=30);
13.绘制一张设置网格大小为30的六角形直方图
plt.hexbin(x,y,gridsize=30);
三、自定义图表元素
14.绘制x=(0,10)间sin的图像,设置线性为虚线
x=np.linspace(0,10,100)
plt.plot(x,np.sin(x),'
--'
15设置y轴显示范围为(-1.5,1.5)
plt.plot(x,np.sin(x))
plt.ylim(-1.5,1.5);
16.设置x,y轴标签variablex,valuey
x=np.linspace(0.05,10,100)
y=np.sin(x)
plt.plot(x,y,label='
sin(x)'
plt.xlabel('
variablex'
plt.ylabel('
valuey'
17.设置图表标题“三角函数”
plt.title('
三角函数'
18.显示网格
plt.plot(x,y)
plt.grid()
19.绘制平行于x轴y=0.8的水平参考线
plt.axhline(y=0.8,ls='
c='
r'
20.绘制垂直于x轴x<
4andx>
6的参考区域,以及y轴y<
0.2andy>
-0.2的参考区域
plt.axvspan(xmin=4,xmax=6,facecolor='
alpha=0.3)#垂直x轴
plt.axhspan(ymin=-0.2,ymax=0.2,facecolor='
y'
alpha=0.3);
#垂直y轴
21.添加注释文字sin(x)
plt.text(3.2,0,'
weight='
bold'
color='
22.用箭头标出第一个峰值
plt.annotate('
maximum'
xy=(np.pi/2,1),xytext=(np.pi/2+1,1),
weight='
color='
arrowprops=dict(arrowstyle='
->
'
connectionstyle='
arc3'
));
四、自定义图例
23.在一张图里绘制sin,cos的图形,并展示图例
x=np.linspace(0,10,1000)
fig,ax=plt.subplots()
ax.plot(x,np.sin(x),label='
sin'
ax.plot(x,np.cos(x),'
label='
cos'
ax.legend();
24.调整图例在左上角展示,且不显示边框
ax.legend(loc='
upperleft'
frameon=False);
fig
25.调整图例在画面下方居中展示,且分成2列
ax.legend(frameon=False,loc='
lowercenter'
ncol=2)
26.绘制的图像,并只显示前2者的图例
y=np.sin(x[:
np.newaxis]+np.pi*np.arange(0,2,0.5))
lines=plt.plot(x,y)
#lines是plt.Line2D类型的实例的列表
plt.legend(lines[:
2],['
first'
'
second'
]);
#第二个方法
#plt.plot(x,y[:
0],label='
1],label='
2:
])
#plt.legend(framealpha=1,frameon=True);
27.将图例分不同的区域展示
lines=[]
styles=['
-'
-.'
:
foriinrange(4):
lines+=ax.plot(x,np.sin(x-i*np.pi/2),styles[i],color='
black'
ax.axis('
equal'
#设置第一组标签
ax.legend(lines[:
lineA'
lineB'
],
loc='
upperright'
frameon=False)
#创建第二组标签
frommatplotlib.legendimportLegend
leg=Legend(ax,lines[2:
],['
lineC'
lineD'
lowerright'
ax.add_artist(leg);
五、自定义色阶
28.展示色阶
I=np.sin(x)*np.cos(x[:
np.newaxis])
plt.imshow(I)
29.改变配色为'
gray'
plt.imshow(I,cmap='
30.将色阶分成6个离散值显示
plt.imshow(I,cmap=plt.cm.get_cmap('
Blues'
6))
plt.colorbar()
plt.clim(-1,1);
六、多子图
31.在一个1010的画布中,(0.65,0.65)的位置创建一个0.20.2的子图
ax1=plt.axes()
ax2=plt.axes([0.65,0.65,0.2,0.2])
32.在2个子图中,显示sin(x)和cos(x)的图像
fig=plt.figure()
ax1=fig.add_axes([0.1,0.5,0.8,0.4],ylim=(-1.2,1.2))
ax2=fig.add_axes([0.1,0.1,0.8,0.4],ylim=(-1.2,1.2))
x=np.linspace(0,10)
ax1.plot(np.sin(x));
ax2.plot(np.cos(x));
33.用for创建6个子图,并且在图中标识出对应的子图坐标
foriinrange(1,7):
plt.subplot(2,3,i)
plt.text(0.5,0.5,str((2,3,i)),fontsize=18,ha='
center'
#方法二
#fig=plt.figure()
#fig.subplots_adjust(hspace=0.4,wspace=0.4)
#foriinrange(1,7):
#ax=fig.add_subplot(2,3,i)
#ax.text(0.5,0.5,str((2,3,i)),fontsize=18,ha='
34.设置相同行和列共享x,y轴
fig,ax=plt.subplots(2,3,sharex='
col'
sharey='
row'
35.用[]的方式取出每个子图,并添加子图座标文字
foriinrange
(2):
forjinrange(3):
ax[i,j].text(0.5,0.5,str((i,j)),fontsize=18,ha='
36.组合绘制大小不同的子图,样式如下
ImageName
grid=plt.GridSpec(2,3,wspace=0.4,hspace=0.3)
plt.subplot(grid[0,0])
plt.subplot(grid[0,1:
plt.subplot(grid[1,:
2])
plt.subplot(grid[1,2]);
37.显示一组二维数据的频度分布,并分别在x,y轴上,显示该维度的数据的频度分布
x,y=np.random.multivariate_normal(mean,cov,3000).T
#Setuptheaxeswithgridspec
fig=plt.figure(figsize=(6,6))
grid=plt.GridSpec(4,4,hspace=0.2,wspace=0.2)
main_ax=fig.add_subplot(grid[:
-1,1:
y_hist=fig.add_subplot(grid[:
-1,0],xticklabels=[],sharey=main_ax)
x_hist=fig.add_subplot(grid[-1,1:
],yticklabels=[],sharex=main_ax)
#scatterpointsonthemainaxes
main_ax.scatter(x,y,s=3,alpha=0.2)
#histogramontheattachedaxes
x_hist.hist(x,40,histtype='
orientation='
vertical'
x_hist.invert_yaxis()
y_hist.hist(y,40,histtype='
horizontal'
y_hist.invert_xaxis()
七、三维图像
38.创建一个三维画布
frommpl_toolkitsimportmplot3d
ax=plt.axes(projection='
3d'
39.绘制一个三维螺旋线
#Dataforathree-dimensionalline
zline=np.linspace(0,15,1000)
xline=np.sin(zline)
yline=np.cos(zline)
ax.plot3D(xline,yline,zline);
40.绘制一组三维点
zdata=15*np.random.random(100)
xdata=np.sin(zdata)+0.1*np.random.randn(100)
ydata=np.cos(zdata)+0.1*np.random.randn(100)
ax.scatter3D(xdata,ydata,zdata,c=zdata,cmap='
Greens'
八、宝可梦数据集可视化
41.展示前5个宝可梦的Defense,Attack,HP的堆积条形图
pokemon=df['
Name'
][:
5]
hp=df['
HP'
attack=df['
Attack'
defense=df['
Defense'
ind=[xforx,_inenumerate(pokemon)]
plt.figure(figsize=(10,10))
plt.bar(ind,defense,width=0.8,label='
blue'
bottom=attack+hp)
plt.bar(ind,attack,width=0.8,label='
gold'
bottom=hp)
plt.bar(ind,hp,width=0.8,label='
Hp'
red'
plt.xticks(ind,pokemon)
plt.ylabel("
Value"
plt.xlabel("
Pokemon"
plt.legend(loc="
upperright"
plt.title("
5PokemonDefense&
Attack&
Hp"
plt.show()
42.展示前5个宝可梦的Attack,HP的簇状条形图
N=5
pokemon_hp=df['
pokemon_attack=df['
ind=np.arange(N)
width=0.35
plt.bar(ind,pokemon_hp,width,label='
plt.bar(ind+width,pokemon_attack,width,label='
Values'
PokemonHp&
Attack'
plt.xticks(ind+width/2,(df['
5]),rotation=45)
plt.legend(loc='
best'
43.展示前5个宝可梦的Defense,Attack,HP的堆积图
x=df['
4]
y1=df['
y2=df['
y3=df['
labels=["
HP"
"
Attack"
Defense"
ax.stackplot(x,y1,y2,y3)
labels=labels)
plt.xticks(rotation=90)
44.公用x轴,展示前5个宝可梦的Defense,Attack,HP的折线图
#Createtwosubplotssharingyaxis
fig,(ax1,ax2,ax3)=plt.subplots(3,sharey=True)
ax1.plot(x,y1,'
ko-'
ax1.set(title='
3subplots'
ylabel='
ax2.plot(x,y2,'
r.-'
ax2.set(xlabel='
Pokemon'
ax3.plot(x,y3,'
ax3.set(xlabel='
45.展示前15个宝可梦的Attack,HP的折线图
plt.plot(df['
15],'
-r'
label='
g'
plt.legend();
46.用scatter的x,y,c属性,展示所有宝可梦的Defense,Attack,HP数据
y=df['
colors=df['
plt.scatter(x,y,c=colors,alpha=0.5)
Scatterplot'
47.展示所有宝可梦的攻击力的分布直方图,bins=10
num_bins=10
n,bins,patches=plt.hist(x,num_bins,facecolor='
alpha=0.5)
Histogram'
Value'
48.展示所有宝可梦Type1的饼图
plt.figure(1,figsize=(8,8))
df['
Type1'
].value_counts().plot.pie(autopct="
%1.1f%%"
plt.legend()
49.展示所有宝可梦Type1的柱状图
ax=df['
].value_counts().plot.bar(figsize=(12,6),fontsize=14)
ax.set_title("
PokemonType1Count"
fontsize=20)
ax.set_xlabel("
PokemonType1"
ax.set_ylabel("
50.展示综合评分最高的10只宝可梦的系数间的相关系数矩阵
importseabornassns
top_10_pokemon=df.sort_values(by='
Total'
ascending=False).head(10)
corr=top_10_pokemon.corr()
fig,ax=plt.subplots(figsize=(10,6))
sns.heatmap(corr,annot=True)
ax.set_ylim(9,0)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matplotlib 入门 精通 教程