python爬墙是什么意思_matplotlib子图与多种图形绘制

import numpy as np

import matplotlib.pyplot as plt

#散点图

#scatter

fig=plt.figure()

#fig.add_subplot(3,3,1)#上下两种方法都可以

ax=fig.add_subplot(3,3,1)

n=128

#正态分布numpy.random.normal(loc=0.0, scale=1.0, size=None),(均值,标准差,size默认为none,只输出一个值)

x=np.random.normal(0,1,n)

y=np.random.normal(0,1,n)

t=np.arctan2(y,x)#返回给定的 X 及 Y 坐标值的反正切值,arctan2(y,x)就是将反正切arctan(y/x)的值域从(-pi/2,pi/2)扩充到(-pi,pi)。

'''fig=plt.figure() --- 创建图像

ax=plt.axes() --- 创建坐标轴

在matplotlib中,可以把figure看成是一个容纳各种坐标轴,图像,文字和标签的容器,

axes是一个带有刻度和标签的矩形。我们通常用变量fig表示一个图形实例,用变量ax表示一个坐标轴实例。'''

#plt.axes([0.025,0.025,0.95,0.95])

#plt.scatter(x,y,s=75,c=t,alpha=0.7)#把t赋值给color,以满足我们想要达到多彩散点图的效果

ax.scatter(x,y,s=75,c=t,alpha=0.7)

#plt.axis([-1,1,-0.5,1])#显示范围,x轴范围从-1到1,y轴范围从-0.5到1

plt.xlim(-1.5,1.5),plt.xticks([])#plt.xlim(xmin, xmax),xmin:x轴上的最小值,xmax:x轴上的最大值

plt.ylim(-1.5,1.5),plt.yticks([])#坐标显示值清空

plt.axis()#一个Figure是一个空白的画板画板上有轴的集合(axes),集合元素包含基本的两个axis ,用来确定一个区域,axis是用来设置具体某一个坐标轴的属性的

plt.title("scatter")

plt.xlabel("x")

plt.ylabel("y")

#柱状图

#bar

#fig.add_subplot(332)#大于10,要加逗号,小于10不需要加逗号

ax=fig.add_subplot(332)#大于10,要加逗号,小于10不需要加逗号

n=10

x1=np.arange(n)

y1=(1-x1/float(n))*np.random.uniform(0.5,1.0,n)#random.uniform(x, y) 方法将随机生成一个实数,它在 [x,y] 范围内。

y2=(1-x1/float(n))*np.random.uniform(0.5,1.0,n)

#plt.bar(x1,+y1,facecolor='#9999ff',edgecolor='white')#与ax.bar()等价

#plt.bar(x1,-y2,facecolor='#ff9999',edgecolor='white')

ax.bar(x1,+y1,facecolor='#9999ff',edgecolor='white')

ax.bar(x1,-y2,facecolor='#ff9999',edgecolor='white')

for x,y in zip(x1,y1):

plt.text(x+0.4,y+0.05,'%.2f'%y,ha='center',va='bottom')#也可以用对象调用,ax.text()

for x,y in zip(x1,y2):

ax.text(x+0.4,-y-0.05,'%.2f'%y,ha='center',va='top')

plt.title("bar")

plt.xlabel("x")

plt.ylabel("y")

#饼状图

#pie

fig.add_subplot(333)

n=20

z=np.ones(n)#数组

z[-1] *= 2

plt.pie(z,explode=z*.05,colors=['%f' % (i/float(n)) for i in range (n)],

labels=['%.2f' % (i/float(n)) for i in range(n)])#explode离中心的距离

plt.gca().set_aspect('equal')#两个轴的长度始终相同,equal表示x和y维度在数据坐标中的长度相同

plt.xticks([]),plt.yticks([])

plt.title("pie")

#极坐标图形

#polar

fig.add_subplot(334,polar=True)#fig.add_subplot(334)我们会看到一个一个折线图

n=20

theta=np.arange(0.0,2*np.pi,2*np.pi/n)

radii=10*np.random.rand(n)

plt.polar(theta,radii)

#plt.plot(theta,radii)

#plt.title('plor')

#热力图

#heatmap

fig.add_subplot(335)

from matplotlib import cm#color map 用来上色

data=np.random.rand(3,3)

cmap=cm.Blues#蓝色系

#plt.imshow()函数负责对图像进行处理,并显示其格式,但是不能显示

'''图片缩放的两种常见算法:

最近邻域内插法(Nearest Neighbor interpolation)

双向性内插法(bilinear interpolation)

最简单的图像缩放算法就是最近邻插值,就是将目标图像各点的像素值设为源图像中与其最近的点。算法优点在与简单、速度快。'''

map=plt.imshow(data,interpolation='nearest',cmap=cmap,aspect='auto',vmin=0,vmax=1)#aspect='auto'自动缩放,vimn=0,填充为白色,为1,填充为蓝色

#plt.title('heatmap')

#3D图形

#3D

from mpl_toolkits.mplot3d import Axes3D

ax=fig.add_subplot(336,projection='3d')

ax.scatter(1,1,3,s=100)

plt.title('3D')

#热图

#hot map

fig.add_subplot(313)

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)#meshgrid函数可以理解为用两个坐标轴上的点在平面上画网格

plt.contourf(x,y,f(x,y),8,alpha=.75,cmap=plt.cm.cool)#contourf填充二维高等线

plt.show()

#了解一下数组

n=20

z=np.ones(n)#数组

print(z)

z[-1] *= 2

print(z)

z[-2] *= 2

print(z)

#极坐标图不把属性设为true,会直接画到画布上

#polar

#fig.add_subplot(334,polar=True)#fig.add_subplot(334)我们会看到一个一个折线图

fig.add_subplot(334)

n=20

theta=np.arange(0.0,2*np.pi,2*np.pi/n)

radii=10*np.random.rand(n)

plt.polar(theta,radii)

#plt.plot(theta,radii)

plt.title('plor')

plt.show()

#numpy.random.normal() & np.random.randn()

numpy中

numpy.random.normal(loc=0.0, scale=1.0, size=None)

参数的意义为:

loc:float

概率分布的均值,对应着整个分布的中心center

scale:float

概率分布的标准差,对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高

size:int or tuple of ints

输出的shape,默认为None,只输出一个值

我们更经常会用到np.random.randn(size)所谓标准正太分布(μ=0, σ=1),对应于np.random.normal(loc=0, scale=1, size)

camp参数:可参考 https://blog.csdn.net/weixin_39010770/article/details/88203326

最近邻插值法:可参考https://blog.csdn.net/haluoluo211/article/details/80918147

contourf()可参考https://blog.csdn.net/qq_24059779/article/details/83022945

meshgrid函数  可参考https://www.cnblogs.com/shanlizi/p/9127878.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值