6.19学习笔记(matplotlib)

绘制正弦波

import numpy as np
import matplotlib.pyplot as plt
#计算正弦曲线上点的x和y坐标
x=np.arange(0,3*np.pi)
y=np.sin(x)
plt.title("sine wave form")
#使用matplotlib来绘制点
plt.plot(x,y)
plt.show()

在这里插入图片描述
绘制子图

import numpy as np
import matplotlib.pyplot as plt
#计算正弦和余弦曲线上的点的x和y坐标
x=np.arange(0,3*np.pi,0.1)
y_sin=np.sin(x)
y_cos=np.cos(x)
#建立subplot网格,高为2,宽为1
#激活第一个subplot
plt.subplot(2,1,1)
#绘制第一个图像
plt.plot(x,y_sin)
plt.title("Sine")
#将第二个subplot激活,并绘制第二个图像
plt.subplot(2,1,2)
plt.plot(x,y_cos)
plt.title("Cosine")
#展示图像
plt.show()

在这里插入图片描述
bar():生成条形图
示例

from matplotlib import pyplot as plt
x=[5,8,10]
y=[12,16,6]
x2=[6,9,11]
y2=[6,15,7]
plt.bar(x,y,align='center')
plt.bar(x2,y2,color='g',align='center')
plt.title("Bar graph")
plt.ylabel("Y axis")
plt.xlabel("X axis")
plt.show()

在这里插入图片描述
numpy.histogram()
根据数据的频率分布的图形表示。水平尺寸相等的矩形对应于类间隔,称为bin,变量height对应于频率,将输入数组和bin作为两个参数,bin数组中的连续元素用作每个bin的边界。(左闭右开)

import numpy as np
a=np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
np.histogram(a,bins=[0,20,40,60,80,100])
hist,bins=np.histogram(a,bins=[0,20,40,60,80,100])
print(hist)
print(bins)

结果:
[3 4 5 2 1]
[ 0 20 40 60 80 100]

plt()
pyplot子模块的plt()函数将包含数据和bin数组的数组作为参数,并转换为直方图。

from matplotlib import pyplot as plt
import numpy as np
a=np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
plt.hist(a,bins=[0,20,40,60,80,100])
hist,bins=np.histogram(a,bins=[0,20,40,60,80,100])
print(hist)
print(bins)
plt.title("histogram")
plt.show()

在这里插入图片描述

from pylab import *
#创建一个8*6点的图,并设置分辨率为80
figure(figsize=(8,6),dpi=80)
#创建一个新的1*1的子图,接下来的图样绘制在其中的第一块(也是唯一的一块)
subplot(1,1,1)
X=np.linspace(-np.pi,np.pi,256,endpoint=True)
#endpoint如果是真,则一定包括stop,如果为False,一定不会有stop
C,S=np.cos(X),np.sin(X)
#绘制余弦曲线,使用蓝色的、连续的、宽度为1(像素)的线条
plot(X,C,color="blue",linewidth=1.0,linestyle="-")
#绘制正弦曲线,使用绿色的、连续的、宽度为1(像素)的线条
plot(X,S,color="green",linewidth=1.0,linestyle="-")
plt.show()

在这里插入图片描述
#横轴的上下限
xlim(-4.0,4.0)
#设置横轴记号
xticks(np.linspace(-4,4,9,endpoint=True))
#纵轴的上下限
xlim(-1.0,1.0)
#设置纵轴记号
yticks(np.linspace(-1,1,5,endpoint=True))
#以分辨率72来保存图片
savefig(“fig.png”,dpi=72)

示例:复杂操作:条形图

from pylab import *
n=12
X=np.arange(n)
Y1=(1-X/float(n))*np.random.uniform(0.5,1.0,n)
Y2=(1-X/float(n))*np.random.uniform(0.5,1.0,n)
bar(X,+Y1,facecolor='#9999ff',edgecolor='white')
bar(X,-Y2,facecolor='#ff9999',edgecolor='white')
for x,y in zip(X,Y1):
    text(x+0.4,y+0.05,'%.2f' % y,ha='center',va='bottom')
ylim(-1.25,+1.25)
show()

在这里插入图片描述
等高线

from pylab import *
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)			\\分成256份
y=np.linspace(-3,3,n)
X,Y=np.meshgrid(x,y)			\\网格
contourf(X,Y,f(X,Y),8,alpha=.75,cmap='jet')
C=contour(X,Y,f(X,Y),8,colors='black')
show()

在这里插入图片描述

from pylab import *
import numpy as np
x=np.linspace(-np.pi,np.pi,256,endpoint=True)
y=np.cos(x)
y1=np.sin(x)
#线段颜色,线条风格,线条宽度,线条标记,标记的边缘颜色,标记边缘宽度,标记内颜色,标记大小
plot([1,2],c='r',ls='-',lw=2,marker='D',mec='g',mew=2,mfc='b',ms=30)
plot(x,y1)
#图表名称
title("Functions $\sin$ and $\cos$")
#x,y轴坐标范围
xlim(-3,3)
ylim(-1,4)
#坐标上刻度
xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],
       [r'$-\pi$',r'$-\pi/2$',r'$0$',r'$+\pi/2$',r'$+\pi$'])
yticks([-1,0,1],
       [r'$-1$',r'$0$',r'$+1$'])
grid()
show()

在这里插入图片描述

发布了5 篇原创文章 · 获赞 2 · 访问量 2672

猜你喜欢

转载自blog.csdn.net/weixin_43621813/article/details/92839498