Matplotlib scatter绘制散点图的方法实现
前言
考虑到很多同学可能还没有安装matplotlib包,这里给大家提供我常用的安装方法。首先Win键+R,输入命令cmd打开命令行工具,再次在命令行工具中输入pipinstallmatplotlib就可以直接安装了,安装后会提示安装成功。
一、简单散点图
1.代码
importnumpyasnp importmatplotlib.pyplotasplt #生成散点数据 n=1024 X=np.random.normal(0,1,n) Y=np.random.normal(0,1,n) plt.scatter(X,Y)#输入散点数据 plt.show()#显示散点图
2.运行结果
3.注释
np.random.normal(0,1,n)的作用是产生一个符合正太分布的数据样本,听起来可能有点专业化了,我们目前只需要知道它的作用是产生一组样本数据就ok了。
(下面的内容了解即可无需深入,后面再进行深入学习)
np.random.normal(size,loc,scale)
参数含义:
loc:此概率分布的均值(对应着整个分布的中心centre)
scale:此概率分布的标准差(对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高)
size:输出的shape,默认为None,只输出一个值
二、复杂的散点图
较上一次散点图所做出的变动:
1.修改散点的颜色
2.将三组散点数据放到一张图上
3.添加散点图图例
1.代码
importnumpyasnp importmatplotlib.pyplotasplt fig,ax=plt.subplots() forcolorin['red','green','purple']:#每一次循环都会产生一组散点数据 n=400 x=np.random.normal(0,1,n) y=np.random.normal(0,1,n) ax.scatter(x,y,c=color,label=color,alpha=0.5) ax.legend()#显示图例 plt.show()
2.运行结果
3.注释
1.fig,ax=plt.subplots()是一个将多组数据放到一张图显示的操作,可以简单理解为多图合一操作。
其返回值
fig:matplotlib.figure.Figure对象
ax:子图对象(matplotlib.axes.Axes)或者是他的数组
#函数定义看看就好了 defsubplots(nrows=1,ncols=1,sharex=False,sharey=False,squeeze=True, subplot_kw=None,gridspec_kw=None,**fig_kw): fig=figure(**fig_kw) axs=fig.subplots(nrows=nrows,ncols=ncols,sharex=sharex,sharey=sharey, squeeze=squeeze,subplot_kw=subplot_kw, gridspec_kw=gridspec_kw) returnfig,axs
2.ax.scatter(x,y,c=color,label=color,alpha=0.5)中的c是散点的颜色,label是图例中的标签,alpha是散点的透明度,通过给alpha值介于0和1之间来调整散点的透明度。
四、散点图参数讲解
这部分还是先通过代码来直观了解一下scatter常用的参数
1.代码
importnumpyasnp importmatplotlib.pyplotasplt n=30 x=np.random.normal(0,1,n) y=np.random.normal(0,1,n) plt.subplot(321) plt.scatter(x,y,s=80,c='red',marker='^') plt.subplot(322) plt.scatter(x,y,s=80,c='green',marker=(7,1)) plt.subplot(323) plt.scatter(x,y,s=1,c='purple',marker=(6,1)) plt.subplot(324) plt.scatter(x,y,s=400,c='red',marker=(5,1)) plt.subplot(325) plt.scatter(x,y,s=80,c='green',marker='+') plt.subplot(326) plt.scatter(x,y,s=80,c='purple',marker=(5,2)) plt.show()
2.运行结果
3.参数说明
fig,axes=plt.subplots(23):表示一次性在figure上创建成2*3的网格,plt.subplot(321)代表在6个网格中的第一个网格创建图像,plt.subplot(322)代表在6个网格中的第二个网格创建图像,以此类推。对于这个函数的其他参数,我会在之后再详细讲解,把时间花在刀刃上,花最少的时间学习最有用的东西。
plt.scatter(x,y,s=80,c='purple',marker=(5,2))中的s代表散点的大小,参照第三和第四张图。marker表示散点的样式,元组表示法参照第二、四、六张图,也可以取特定的符号作为marker的值,参照第一、五张图。
截图取自官网。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。