【Python画图02】散点图、柱状图、等高线

一、学习背景

最近在学习python制图,准备做个模板好出图

二、参考

这个学习系列都参考了B站UP主的视频《【莫烦Python】Matplotlib Python 画图教程》,我是将他的代码重新输入下来后加入了自己的注释和理解,感恩莫烦大大

三、代码学习

1.散点图

重要的语句:

plt.scatter(X,Y,s=75,c=T,alpha=0.5) #画散点图
import matplotlib.pyplot as plt
import numpy as np

n=1024  #画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.xlim((-1.5,1.5)) #x的范围
plt.ylim((-1.5,1.5)) #y的范围
plt.xticks(()) #不显示小标签
plt.yticks(())
plt.show()

结果图展示如下:
在这里插入图片描述

2.柱状图

重要的语句:

plt.bar(X,+Y1,facecolor='#9999ff',edgecolor='black')  #画一个柱状图
import matplotlib.pyplot as plt
import numpy as np

n=12  #画1024个点
X=np.arange(n) #初始化x
Y1=(1-X/float(n))*np.random.uniform(0.5,1.0,n) #设置y
Y2=(1-X/float(n))*np.random.uniform(0.5,1.0,n)

plt.bar(X,+Y1,facecolor='#9999ff',edgecolor='black')  #画一个柱状图
plt.bar(X,-Y2,facecolor='#ff9999',edgecolor='black')

#zip:x,y分别读取X,Y1里面的值
for x,y in zip(X,Y1): 
    plt.text(x+0.04,y+0.05,'%.2f'%y,ha='center',va='bottom') #ha:水平对齐方式,va竖直对齐方式

for x,y in zip(X,Y2):
    plt.text(x+0.04,-y-0.15,'%.2f'%y,ha='center',va='bottom')



plt.xlim((-1,n)) #x的范围
plt.ylim((-1.25,1.25)) #y的范围
plt.xticks(()) #不显示小标签
plt.yticks(())
plt.show()

结果如下:
在这里插入图片描述

3.等高线

重要的语句:

plt.contourf(X,Y,f(X,Y),8,alpha=0.75,cmap=plt.cm.hot) 
import matplotlib.pyplot as plt
import numpy as np

#创建高度函数
def f(x,y):
    return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)

n=256  #画256个点
x=np.linspace(-3,3,n)
y=np.linspace(-3,3,n)
X,Y=np.meshgrid(x,y)  #把xy做成格网,这一点可以参考栅格来理解

#根据高度值,将画布分为8+2=10类,填充颜色设置为暖色调
plt.contourf(X,Y,f(X,Y),8,alpha=0.75,cmap=plt.cm.hot) 

#画边界线
C=plt.contour(X,Y,f(X,Y),8,colors='black',linewidth=0.5) 
#加上标签,文字设在线以内
plt.clabel(C,inline=True,fontsize=10) 

plt.xticks(()) #不显示小标签
plt.yticks(())
plt.show()

结果如下图所示:
在这里插入图片描述

3.显示图片

重要的语句:

plt.imshow(a,interpolation='nearest',cmap='twilight_shifted',origin='upper')
import matplotlib.pyplot as plt
import numpy as np

#类比栅格,设置图片,创建一个3×3矩阵
a=np.array([1,2,3,4,
            2,3,4,5,
            3,4,5,6,
            4,5,6,7]).reshape(4,4)

#显示图像,interpolation插值方式,cmap色带名称,origin设置方向,这个可以类比ArcGIS里面的图层symbol设置
#查看色带名称及颜色:https://blog.csdn.net/irykh/article/details/127964652
plt.imshow(a,interpolation='nearest',cmap='twilight_shifted',origin='upper')
#加上色带图例,shrink缩放比例
plt.colorbar(shrink=0.9)

plt.xticks(()) #不显示小标签
plt.yticks(())
plt.show()

在这里插入图片描述

4.等高线

重要的语句:

ax.contourf(X,Y,Z,zdir='z',offset=-2,cmap='rainbow') #画等高线,zdir为设置等高线从哪个方向推进,offset为等高线面的位置
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

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) #设置Z值,即高度

#设置面,rstride、cstride,行跨和列跨
ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))
#画等高线,zdir为设置等高线从哪个方向推进,offset为等高线面的位置
ax.contourf(X,Y,Z,zdir='z',offset=-2,cmap='rainbow')
#设置z轴的显示范围
ax.set_zlim(-2,2)


plt.show()

结果如图所示:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值