ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:19.66KB ,
资源ID:5683122      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5683122.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(matplotlib从入门到精通教程.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

matplotlib从入门到精通教程.docx

1、matplotlib从入门到精通教程一、导入1.导入matplotlib库简写为pltimport matplotlib.pyplot as plt二、基本图表2.用plot方法画出x=(0,10)间sin的图像x = np.linspace(0, 10, 30)plt.plot(x, np.sin(x);3.用点加线的方式画出x=(0,10)间sin的图像plt.plot(x, np.sin(x), -o);4.用scatter方法画出x=(0,10)间sin的点图像plt.scatter(x, np.sin(x);5.用饼图的面积及颜色展示一组4维数据rng = np.random.Ran

2、domState(0)x = rng.randn(100)y = rng.randn(100)colors = rng.rand(100)sizes = 1000 * rng.rand(100)plt.scatter(x, y, c=colors, s=sizes, alpha=0.3, cmap=viridis)plt.colorbar(); # 展示色阶6.绘制一组误差为0.8的数据的误差条图x = np.linspace(0, 10, 50)dy = 0.8y = np.sin(x) + dy * np.random.randn(50)plt.errorbar(x, y, yerr=dy

3、, fmt=.k)7.绘制一个柱状图x = 1,2,3,4,5,6,7,8y = 3,1,4,5,8,9,7,2label=A,B,C,D,E,F,G,Hplt.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.

4、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, 0cov = 1, 1, 1, 2x, y = np.ra

5、ndom.multivariate_normal(mean, cov, 10000).Tplt.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)x = np.linspace(0,10,100)plt.plot(x, np.sin(x)plt.ylim(-1.5, 1.5);16.设

6、置x,y轴标签variable x,value yx = np.linspace(0.05, 10, 100)y = np.sin(x)plt.plot(x, y, label=sin(x)plt.xlabel(variable x);plt.ylabel(value y);17.设置图表标题“三角函数”x = np.linspace(0.05, 10, 100)y = np.sin(x)plt.plot(x, y, label=sin(x)plt.title(三角函数);18.显示网格x = np.linspace(0.05, 10, 100)y = np.sin(x)plt.plot(x,

7、 y)plt.grid()19.绘制平行于x轴y=0.8的水平参考线x = np.linspace(0.05, 10, 100)y = np.sin(x)plt.plot(x, y)plt.axhline(y=0.8, ls=-, c=r)20.绘制垂直于x轴x6的参考区域,以及y轴y-0.2的参考区域x = np.linspace(0.05, 10, 100)y = np.sin(x)plt.plot(x, y)plt.axvspan(xmin=4, xmax=6, facecolor=r, alpha=0.3) # 垂直x轴plt.axhspan(ymin=-0.2, ymax=0.2,

8、facecolor=y, alpha=0.3); # 垂直y轴21.添加注释文字sin(x)x = np.linspace(0.05, 10, 100)y = np.sin(x)plt.plot(x, y)plt.text(3.2, 0, sin(x), weight=bold, color=r);22.用箭头标出第一个峰值x = np.linspace(0.05, 10, 100)y = np.sin(x)plt.plot(x, y)plt.annotate(maximum,xy=(np.pi/2, 1),xytext=(np.pi/2+1, 1), weight=bold, color=r

9、, arrowprops=dict(arrowstyle=-, connectionstyle=arc3, color=r);四、自定义图例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=upper left, frameon=False);fig25.调整图例在画

10、面下方居中展示,且分成2列ax.legend(frameon=False, loc=lower center, ncol=2)fig26.绘制的图像,并只显示前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=first)#plt.plot(x, y:, 1, label=second)#

11、plt.plot(x, y:, 2:)#plt.legend(framealpha=1, frameon=True);27.将图例分不同的区域展示fig, ax = plt.subplots()lines = styles = -, -, -., :x = np.linspace(0, 10, 1000)for i in range(4): lines += ax.plot(x, np.sin(x - i * np.pi / 2),stylesi, color=black)ax.axis(equal)# 设置第一组标签ax.legend(lines:2, line A, line B, loc

12、=upper right, frameon=False)# 创建第二组标签from matplotlib.legend import Legendleg = Legend(ax, lines2:, line C, line D, loc=lower right, frameon=False)ax.add_artist(leg);五、自定义色阶28.展示色阶x = np.linspace(0, 10, 1000)I = np.sin(x) * np.cos(x:, np.newaxis)plt.imshow(I)plt.colorbar();29.改变配色为grayplt.imshow(I, c

13、map=gray);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)a

14、x2 = 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个子图,并且在图中标识出对应的子图坐标for i in range(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,

15、 wspace=0.4)# for i in range(1, 7):# ax = fig.add_subplot(2, 3, i)# ax.text(0.5, 0.5, str(2, 3, i),fontsize=18, ha=center)34.设置相同行和列共享x,y轴fig, ax = plt.subplots(2, 3, sharex=col, sharey=row)35.用的方式取出每个子图,并添加子图座标文字for i in range(2): for j in range(3): axi, j.text(0.5, 0.5, str(i, j),fontsize=18, ha=c

16、enter)fig36.组合绘制大小不同的子图,样式如下Image Namegrid = plt.GridSpec(2, 3, wspace=0.4, hspace=0.3)plt.subplot(grid0, 0)plt.subplot(grid0, 1:)plt.subplot(grid1, :2)plt.subplot(grid1, 2);37.显示一组二维数据的频度分布,并分别在x,y轴上,显示该维度的数据的频度分布mean = 0, 0cov = 1, 1, 1, 2x, y = np.random.multivariate_normal(mean, cov, 3000).T# Se

17、t up the axes with gridspecfig = 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)# scatter points on the

18、 main axesmain_ax.scatter(x, y,s=3,alpha=0.2)# histogram on the attached axesx_hist.hist(x, 40, histtype=stepfilled, orientation=vertical)x_hist.invert_yaxis()y_hist.hist(y, 40, histtype=stepfilled, orientation=horizontal)y_hist.invert_xaxis()七、三维图像38.创建一个三维画布from mpl_toolkits import mplot3dfig = pl

19、t.figure()ax = plt.axes(projection=3d)39.绘制一个三维螺旋线ax = plt.axes(projection=3d)# Data for a three-dimensional linezline = np.linspace(0, 15, 1000)xline = np.sin(zline)yline = np.cos(zline)ax.plot3D(xline, yline, zline);40.绘制一组三维点ax = plt.axes(projection=3d)zdata = 15 * np.random.random(100)xdata = np

20、.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 = dfName:5hp = dfHP:5attack = dfAttack:5defense = dfDefense:5ind = x for x, _ in enumerate(pokemon)p

21、lt.figure(figsize=(10,10)plt.bar(ind, defense, width=0.8, label=Defense, color=blue, bottom=attack+hp)plt.bar(ind, attack, width=0.8, label=Attack, color=gold, bottom=hp)plt.bar(ind, hp, width=0.8, label=Hp, color=red)plt.xticks(ind, pokemon)plt.ylabel(Value)plt.xlabel(Pokemon)plt.legend(loc=upper r

22、ight)plt.title(5 Pokemon Defense & Attack & Hp)plt.show()42.展示前5个宝可梦的Attack,HP的簇状条形图N = 5pokemon_hp = dfHP:5pokemon_attack = dfAttack:5ind = np.arange(N)width = 0.35 plt.bar(ind, pokemon_hp, width, label=HP)plt.bar(ind + width, pokemon_attack, width,label=Attack)plt.ylabel(Values)plt.title(Pokemon H

23、p & Attack)plt.xticks(ind + width / 2, (dfName:5),rotation=45)plt.legend(loc=best)plt.show()43.展示前5个宝可梦的Defense,Attack,HP的堆积图x = dfName:4y1 = dfHP:4y2 = dfAttack:4y3 = dfDefense:4labels = HP , Attack, Defensefig, ax = plt.subplots()ax.stackplot(x, y1, y2, y3)ax.legend(loc=upper left, labels=labels)p

24、lt.xticks(rotation=90)plt.show()44.公用x轴,展示前5个宝可梦的Defense,Attack,HP的折线图x = dfName:5y1 = dfHP:5y2 = dfAttack:5y3 = dfDefense:5# Create two subplots sharing y axisfig, (ax1, ax2,ax3) = plt.subplots(3, sharey=True)ax1.plot(x, y1, ko-)ax1.set(title=3 subplots, ylabel=HP)ax2.plot(x, y2, r.-)ax2.set(xlabel

25、=Pokemon, ylabel=Attack)ax3.plot(x, y3, :)ax3.set(xlabel=Pokemon, ylabel=Defense)plt.show()45.展示前15个宝可梦的Attack,HP的折线图plt.plot(dfHP:15, -r,label=HP)plt.plot(dfAttack:15, :g,label=Attack)plt.legend();46.用scatter的x,y,c属性,展示所有宝可梦的Defense,Attack,HP数据x = dfAttacky = dfDefensecolors = dfHPplt.scatter(x, y,

26、 c=colors, alpha=0.5)plt.title(Scatter plot)plt.xlabel(HP)plt.ylabel(Attack)plt.colorbar();47.展示所有宝可梦的攻击力的分布直方图,bins=10x = dfAttacknum_bins = 10n, bins, patches = plt.hist(x, num_bins, facecolor=blue, alpha=0.5)plt.title(Histogram)plt.xlabel(Attack)plt.ylabel(Value)plt.show()48.展示所有宝可梦Type 1的饼图plt.f

27、igure(1, figsize=(8,8)dfType 1.value_counts().plot.pie(autopct=%1.1f%)plt.legend()49.展示所有宝可梦Type 1的柱状图ax = dfType 1.value_counts().plot.bar(figsize = (12,6),fontsize = 14)ax.set_title(Pokemon Type 1 Count, fontsize = 20)ax.set_xlabel(Pokemon Type 1, fontsize = 20)ax.set_ylabel(Value, fontsize = 20)plt.show()50.展示综合评分最高的10只宝可梦的系数间的相关系数矩阵import seaborn as snstop_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)plt.show()

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1