matplotlib绘制cos,sin曲线

参考资料:
https://blog.csdn.net/qq_44503987/article/details/97620193
https://www.runoob.com/w3cnote/matplotlib-tutorial.html
https://zhidao.baidu.com/question/579467333.html
https://blog.csdn.net/weixin_36384501/article/details/112215755

pyplot绘图和axes绘图
https://blog.csdn.net/Dontla/article/details/98327176

1.np模块
linespace函数,linespace(x,y,n), 可以产生某区间内间隔相等的n个数

2.matplotlib.pyplot模块
plot函数
函数表达式 pyplot.plot(x,y,format_string,**kwargs)
x代表x轴的数据
y代表y轴的数据
format_string 用于精致曲线显示的字符串
**kwargs 想要画多条曲线时,可以继续填写第二条曲线的x,y,format_string

rcParams函数
使用rc配置文件来定义图形的各种默认属性,称为rc配置或rc参数
参考:https://blog.csdn.net/qq_30815237/article/details/87903024

figure(figsize(a,b),dpi=c)可以设置图的大小
subplot(a,b,c)设置子图
xlim(a,b)设置x轴上下限
xticks(list[])设置x轴记号
plt.gca() 获取当前子图
plt.legend( )函数,给图像加上图例
zip()函数,参数为一系列元组对象,返回一个元组列表

scatter函数
参考:https://blog.csdn.net/qiu931110/article/details/68130199/
用于生成一个scatter散点图

import numpy as np
import matplotlib.pyplot as plt

plt.figure(figsize=(8,5), dpi=80)
plt.subplot(1,1,1)
plt.scatter([1,1,3],[4,2,3],[20,100,400],color = ['blue','red','green'])
plt.show()

运行
在这里插入图片描述

plt.annotate()函数
用于标注文字的函数,传入文字内容,需要标记的点,传入标注文字的位置,传入箭头格式等…
plt.annotate(s=‘str’,xy=(x,y) ,xytext=(l1,l2) , …)
参考https://blog.csdn.net/qq_36387683/article/details/101377416
代码

import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rc('font',family = 'SimHei',size = 7)  #设置字体
mpl.rcParams['axes.unicode_minus'] = False #取消默认保存负号为方块
# mpl.rcParams['lines.linestyle'] = '-.'#线条样式
# mpl.rcParams['lines.linewidth'] = 3#线条宽度
plt.rc('lines',linewidth = 1,linestyle = '-.') #设置线条
mpl.rcParams["image.cmap"] = ['gray']#灰度空间
plt.title("(-Π,Π)上的sin,cos曲线") #设置标题
plt.ylabel("y坐标")
X = np.linspace(-np.pi, np.pi, 32, endpoint=True)
C,S = np.cos(X), np.sin(X)
plt.plot(X,C,"go-")#绿色,坐标点为⚪,实线
plt.plot(X,C,"go-",linewidth=2.5, linestyle="-", label="cosine")#绿色,坐标点为⚪,实线
plt.plot(X,S,'rp-.')#红色,坐标点为实心五角,点划线
plt.plot(X,S,'rp-.',linewidth=2.5, linestyle="-", label="sine")#红色,坐标点为实心五角,点划线
#优化边界
xmin ,xmax = X.min(), X.max()
ymin, ymax = C.min(), C.max()
dx = (xmax - xmin) * 0.2
dy = (ymax - ymin) * 0.2
plt.xlim(xmin - dx, xmax + dx)
plt.ylim(ymin - dy, ymax + dy)
#设置记号是Π,并显示,使用了LaTeX
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi][r'$-\pi$',r'$-\pi/2$',  r'$0$', r'$+\pi/2$', r'$+\pi$'])   
plt.yticks([-1,0,+1],[r'$-1$', r'$0$', r'$+1$'])
#移动脊柱
ax = plt.gca()
ax.spines['right'].set_color('none')#将右、上两条脊柱设置为透明
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')#移动下、左的脊柱到坐标原点。'data'是坐标轴名字
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
#添加图例
plt.legend(loc='upper right')
t = 2*np.pi/3
plt.plot([t,t],[0,np.cos(t)], color ='blue', linewidth=2.5, linestyle="--")
plt.scatter([t,],[np.cos(t),], 50, color ='blue')
#xycoords指定坐标轴,xytext表示文字标注最左端点的位置,arrowprops是设置箭头
plt.annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',
         xy=(t, np.sin(t)), xycoords='data',
         xytext=(+10, +30), textcoords='offset points', fontsize=16,
         arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))
plt.plot([t,t],[0,np.sin(t)], color ='red', linewidth=2.5, linestyle="--")
plt.scatter([t,],[np.sin(t),], 50, color ='red')
plt.annotate(r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$',
         xy=(t, np.cos(t)), xycoords='data',
         xytext=(-90, -50), textcoords='offset points', fontsize=16,
         arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))
plt.show()

代码运行后得到下列图形
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值