python3 的matplotlib的三角函数sin和cos的静态作图详述

有些话、适合烂在心里 提交于 2020-04-08 11:55:26

感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

**7.3 我自己整理好,也分享出来,值得收藏。**感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30778.html

1.说明:

1.1 推荐指数:★★★

1.2 基础知识:三角函数sin和cos,在计算机编程中,尤其python中,应用到画圆很重要。

1.3 用通俗易懂的方式,来讲解,三角函数的matplotlib作图,静态图,为以后的画圆打基础。

1.4 为了突出重点,暂时不提中文设置。复习matplotlib作图的基础知识,深入了解sin和cos的关系。

1.5 适合学习人群:小白、学生、老师、爱好作图人员和计算机编程人员阅读。

2.理论:

比如:

r = 1 #假设半径为1  
  
# 0~2π(一圈,一个π是半圈,步长=0.01,步长越小图线越平滑)  
  
a = np.arange(0,2*np.pi,0.01)   
  
#圆的坐标点与三角函数的关系  
  
x = r*np.cos(a)  
  
y = r*np.sin(a)  
  
#画圆  
  
plt.plot(x,y,color='red')

3.sin正弦函数

3.1 静态:sin-s

3.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#定义坐标关系  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

3.3 图

sin-s-1

3.4 代码:注释版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率  
  
#fig = plt.figure(figsize=(8,8),dpi=80) #自定义  
  
#fig = plt.figure() #这是默认的,也可以这一行不设,就是默认  
  
#---画正弦sin曲线---  
  
#0.001越小,线条越平滑好看  
  
#从-2*np.pi到2*np.pi=就是2个2π,4个波=2个波峰+2个波底  
  
#x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.sin(x)  
  
#画线  
  
plt.plot(x,y,color='blue')  
  
#默认显示2个2π,4个波=2个波峰+2个波底  
  
#plt.ylim(-2, 2)  
  
#plt.xlim(-2, 2)  
  
plt.title('sin-s') #标题  
  
plt.legend(['sin']) #图例,注意中括号  
  
plt.show()  #图片展示

4.cos余弦函数:

4.1 将上面的sin函数的简洁版的代码中,sin改为cos即可,颜色定义为绿色=green。

4.2 代码:简洁版

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---画正弦cos曲线---  
  
x = np.arange(-2*np.pi,2*np.pi,0.1)  
  
y = np.cos(x)  
  
#画线  
  
plt.plot(x,y,color='green')  
  
plt.title('cos-s') #标题  
  
plt.legend(['cos']) #图例,注意中括号  
  
plt.show()  #图片展示

4.3 图:cos-s-1

5.一个坐标系展示sin和cos作图法

5.1 代码1:

#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#plt.figure() #可以不要,采用默认  
  
#取值范围-2π~2π,比较能展现sin和cos的特点  
  
#0.1~0.001,最好越小越好,线条越平滑  
  
x=np.arange(-2*np.pi,2*np.pi,0.1)  
  
y1=np.sin(x)  #正弦sin函数线条  
  
y2=np.cos(x)  #余弦cos函数线条  
  
#绘制两个图形,需要绘制两次  
  
#不设置颜色,采用默认的2种不同颜色,也可以单独设置颜色  
  
#本讲解中sin设置蓝色=blue,cos设置为绿色=green  
  
plt.plot(x,y1,color='blue')  
  
plt.plot(x,y2,color='green')  
  
#增加标题  
  
plt.title('x‘sin and cos')  
  
#增加图例  
  
plt.legend(['y=sinx','y=cosx'])  
  
#增加x轴和y轴标签名  
  
plt.xlabel('x-v')  
  
plt.ylabel('y-v',rotation=0)  
  
#图片展示  
  
plt.show()

5.2 图:sin-cos-s-1

5.3 升级版,代码:

#---导出模块---  
  
import numpy as np  
  
from matplotlib import pyplot as plt  
  
#---sin和cos的坐标值定义---  
  
#---注意np的arrange和linspace的含义,在这里区别不大  
  
##在-np.pi~np.pi之间选择256个等差数  
  
#x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True)  
  
x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#y1=sin,y2=cos  
  
y1, y2 = np.sin(x), np.cos(x)  
  
#定义画布大小,不设置就是默认  
  
#plt.figure(figsize=(10, 7))#取出一张10*7的白纸  
  
#画sin和cos,自定义颜色blue和green,label="sin",label="cos"  
  
plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#设置线宽5 aa关闭抗锯齿 默认开启  
  
plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默认线宽10,不设置就是默认  
  
#去掉就是默认  
  
#自定义刻度法,取最大值×1.2  
  
plt.xlim(x.min() * 1.2, x.max() * 1.2)#横坐标范围  
  
plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#纵坐标范围  
  
plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#横坐标刻度  
  
plt.yticks([y1.min(), y1.max()])#纵坐标刻度  
  
#图例个性设置,自定义字体大小,位置默认是最佳,显示内容是label内容  
  
#也可以这样  
  
plt.legend(['sin','cos'],fontsize=20)  
  
#plt.legend(fontsize=20) #如何这样的话,那么需要在上面加入label  
  
#标注设置  
  
t = 2 / 3 * np.pi  
  
#标注蓝色点垂直线  
  
plt.plot([t, t], [0, np.sin(t)], "--", color="b")  
  
plt.scatter([t], [np.sin(t)], s=100)#散点图  
  
#标注红色点垂直线  
  
plt.plot([t, t], [0, np.cos(t)], "--", color="r")  
  
plt.scatter([t], [np.cos(t)], s=100)#散点图  
  
#设置标注  
  
plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$",  
  
             (t, np.sin(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 20),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#设置标注  
  
plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$",  
  
             (t, np.cos(t)),  
  
             xycoords="data", textcoords="offset pixels",  
  
             xytext=(20, 0),  
  
             arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭头属性  
  
             fontsize=16,#zi字体大小  
  
            )  
  
#ax定义和边框线,也可以注释掉,那就是默认  
  
ax = plt.gca()  
  
#去除图片的四边黑框线  
  
ax.spines["bottom"].set_position(("data", 0))  
  
ax.spines["left"].set_position(("data", 0))  
  
ax.spines["top"].set_color("none")  
  
ax.spines["right"].set_color("none")  
  
#图片展示  
  
plt.show()

5.4 图:sin-cos-s-2

5.5 豪华版代码:

#---导出模块---  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#---函数定义和画函数线---  
  
#x坐标的取值范围:linspace是等差数列法  
  
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)  
  
#arrange法,因为0.001取值很小很平滑,所以可能☆就不能显示  
  
#x =np.arange(-2*np.pi,2*np.pi,0.001)  
  
#定义余弦函数正弦函数,一行定义法,也可以y1和y2  
  
c,s=np.cos(x),np.sin(x)  
  
#画三角函数曲线,以x为横坐标,以s和c为纵坐标  
  
#plt.plot(x,s,"r*",label="sin-s-3")  #r*=red的*,相当于color='red',linestyle="*"  
  
plt.plot(x,s,color="blue",label="sin-s-3")  
  
plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5)  
  
ax=plt.gca()  
  
#去除图片的四边的边框黑线  
  
ax.spines["right"].set_color("none")  
  
ax.spines["top"].set_color("none")  
  
ax.spines["left"].set_position(("data",0))  
  
ax.spines["bottom"].set_position(("data",0))  
  
#自定义标签文字  
  
#x轴标签依次是:,如果注释掉就是-6~6,间隔2  
  
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$'])  
  
#y轴的标签,取值从-1~1,分5个等差  
  
plt.yticks(np.linspace(-1,1,5,endpoint=True))  
  
#默认标签位置也是这样,所以可以不要,注释掉  
  
#ax.xaxis.set_ticks_position("bottom")  #线下  
  
#ax.yaxis.set_ticks_position("left")  #线左边  
  
'''  
  
#如果上面的2行注释掉,那么下面的存在意义不大,也可以注释掉  
  
for label in ax.get_xticklabels()+ax.get_yticklabels():  
  
    label.set_fontsize(16)  
  
    label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))  
  
'''  
  
#固定面积显示  
  
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25)  
  
#固定垂直虚线标注  
  
t=1  
  
plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--")  
  
#箭头标注  
  
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),  
  
textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))  
  
#增加标题  
  
plt.title("sin-cos-s-3")  
  
#plt.figure(1)  #可以注释掉,采用默认  
  
#图例显示,loc代表位置,这是固定左上角位置,默认best,最佳位置,可以自动调节空挡显示  
  
plt.legend(loc="upper left")  
  
#显示网格,可以注释掉  
  
plt.grid()  
  
#显示图形  
  
plt.show()

5.6 图:sin-cos-s-3

6 sin和cos的布局

6.1 ggplot法,代码:

#导出模块  
  
import numpy as np  
  
import matplotlib.pyplot as plt  
  
#画布采用默认大小  
  
fig=plt.figure()   
  
#采用ggplot法布局三个图片位置  
  
plt.style.use('ggplot')  
  
left,width = 0.05,0.95  
  
#位置布局一:上面一行2个  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left+0.5,0.55,0.45,0.3]  #第2个图  
  
'''  
  
#位置布局二:上下2个,靠左  
  
rect_sin=[left,0.55,0.45,0.3]  #第1个图  
  
rect_cos=[left,0.1,0.45,0.3]   #第2个图  
  
'''  
  
#定义x和y坐标  
  
#x=np.linspace(-10,10) #未设置等分,则线条不平滑  
  
#x=np.linspace(-10,10,260)  #260等分,数值越大,曲线的线条越平滑  
  
x=np.arange(-10,10,0.001)  #arange则是0.001,越小越平滑  
  
#y1=np.sin(x)  
  
#y1=np.cos(x)  
  
#---第1个图---正弦sin  
  
ax_sin = fig.add_axes(rect_sin)  
  
ax_sin.plot(x,np.sin(x),color='blue')  
  
ax_sin.set_title('Sin-s-ggplot')  
  
#---第2个图---余弦cos  
  
ax_cos=fig.add_axes(rect_cos)  
  
ax_cos.plot(x,np.cos(x),color='green')  
  
ax_cos.set_title('Cos-s-ggplot')  
  
#图片展示  
  
plt.show()

图:2lf-ggplot法

2ud-ggplot法图

6.2 subplot法

代码:  
  
#---导出模块---  
  
import matplotlib.pyplot as plt  
  
import numpy as np  
  
#---定义画布大小和分辨率---  
  
fig = plt.figure(figsize=(8,8),dpi=80)  
  
#采用subplot法,分四个图  
  
#2,2,1=2行2列,第一个,从左边数  
  
# 画正弦曲线  
  
fig.add_subplot(2,2,1)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.sin(x)  
  
plt.plot(x,y,color='blue')  
  
plt.title('Sin-s-subplot')  
  
plt.legend(['sin'])  
  
#方法一:第1行1和2并列  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
#fig.add_subplot(2,2,2)  
  
#方法二:第1行1和第2行1,上下  
  
# 余弦,2,2,2=2行2列,第2个,从左边数  
  
fig.add_subplot(2,2,3)  
  
x = np.arange(-2*np.pi,2*np.pi,0.001)  
  
y = np.cos(x)  
  
plt.plot(x,y,color='green')  
  
plt.title('Cos-s-subplot')  
  
plt.legend(['cos'])  
  
plt.show()

6.3 图略,作图位置如上面的ggplot法。

7.小结:

7.1 学习sin和cos有没有用,当然有,在画圆中需要sin和cos来定位圆的坐标。基础一定要打好。

7.2 顺带复习matplotlib的相关作图。

7.3 我自己整理好,也分享出来,值得收藏。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!