参考1:http://www.labri.fr/perso/nrougier/teaching/matplotlib/

参考2:https://matplotlib.org/api/artist_api.html

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt x = np.linspace(-np.pi, np.pi, 256,endpoint=True)
y_sin = np.sin(x)
y_cos = np.cos(x) plt.figure(figsize=(10,5))
plt.xlabel('Time(s)')
plt.ylabel('Value')
plt.title('Sin and Cos')
plt.plot(x, y_sin, label="$sin(x)$", color="blue")
plt.plot(x, y_cos, label="$cos(x)$", color="red")
plt.xlim(-4,4)
plt.xticks(np.linspace(-4,4,9,endpoint=True))
# plt.ylim(-1.2,1.2)
# plt.yticks(np.linspace(-1,1,9,endpoint=True))
plt.grid(True, which='major', c='gray', ls='-', lw=1, alpha=0.2)
plt.legend()
plt.show()

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt x = np.linspace(-np.pi, np.pi, 256,endpoint=True)
y_sin = np.sin(x)
y_cos = np.cos(x) plt.figure(figsize=(10,5)) # 移动边界线,构建坐标系,原点为0
ax = plt.gca() #获取当前轴线实例
ax.xaxis.set_ticks_position('bottom') #x轴线,使用spine中的bottom线
ax.yaxis.set_ticks_position('left') #y轴线,使用spine中的left线
ax.spines['bottom'].set_position(('data',0)) #将bottom线的位置设置为数据为0的位置
ax.spines['left'].set_position(('data',0)) #将left线的位置设置为数据为0的位置
ax.spines['top'].set_color('none') #将top线的颜色设置为无
ax.spines['right'].set_color('none') #将right线的颜色设置为无 # plt.xlabel('Time(s)')
# plt.ylabel('Value')
plt.title('Sin and Cos')
plt.plot(x, y_sin, label="$sin(x)$", color="blue")
plt.plot(x, y_cos, label="$cos(x)$", color="red")
plt.xlim(-4,4) # 设置x轴的范围
# plt.xticks(np.linspace(-4,4,9,endpoint=True))
# 设置x轴的标尺刻度,从-pi到pi,取5个值
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
# plt.ylim(-1.2,1.2)
# plt.yticks(np.linspace(-1,1,5,endpoint=True))
plt.grid(True, which='major', c='gray', ls='-', lw=1, alpha=0.2)
plt.legend()
plt.show()

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt x = np.linspace(-np.pi, np.pi, 256,endpoint=True)
y_sin = np.sin(x)
y_cos = np.cos(x) plt.figure(figsize=(10,5),dpi=80) # 移动边界线,构建坐标系,原点为0
ax = plt.gca() #获取当前轴线实例
ax.xaxis.set_ticks_position('bottom') #x轴线,使用spine中的bottom线
ax.yaxis.set_ticks_position('left') #y轴线,使用spine中的left线
ax.spines['bottom'].set_position(('data',0)) #将bottom线的位置设置为数据为0的位置
ax.spines['left'].set_position(('data',0)) #将left线的位置设置为数据为0的位置
ax.spines['top'].set_color('none') #将top线的颜色设置为无
ax.spines['right'].set_color('none') #将right线的颜色设置为无 # plt.xlabel('Time(s)')
# plt.ylabel('Value')
plt.title('Sin and Cos')
plt.plot(x, y_sin, label="$sin(x)$", color="blue", linestyle="-")
plt.plot(x, y_cos, label="$cos(x)$", color="red", linestyle="-")
plt.xlim(-4,4) # 设置x轴的范围
# plt.xticks(np.linspace(-4,4,9,endpoint=True))
# 设置x轴的标尺刻度,从-pi到pi,取5个值
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
plt.ylim(-1.2,1.2)
plt.yticks(np.linspace(-1,1,5,endpoint=True)) t = 2*np.pi/3
plt.plot([t,t],[0,np.cos(t)], color ='red', linewidth=1.5, linestyle="--")
plt.scatter([t,],[np.cos(t),], 50, color ='red')
plt.annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',
xy=(t, np.sin(t)), xycoords='data',
xytext=(+10, +30), textcoords='offset points', fontsize=16,
arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2")) plt.plot([t,t],[0,np.sin(t)], color ='blue', linewidth=1.5, linestyle="--")
plt.scatter([t,],[np.sin(t),], 50, color ='blue')
plt.annotate(r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$',
xy=(t, np.cos(t)), xycoords='data',
xytext=(-90, -50), textcoords='offset points', fontsize=16,
arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2")) # plt.grid(True, which='major', c='gray', ls='-', lw=1, alpha=0.2)
plt.legend()
plt.show()

import numpy as np
import matplotlib.pyplot as plt x = np.linspace(-np.pi, np.pi, 256,endpoint=True)
y_sin = np.sin(x)
y_cos = np.cos(x) plt.figure(figsize=(10,5),dpi=80) # 移动边界线,构建坐标系,原点为0
ax = plt.gca() #获取当前轴线实例
ax.xaxis.set_ticks_position('bottom') #x轴线,使用spine中的bottom线
ax.yaxis.set_ticks_position('left') #y轴线,使用spine中的left线
ax.spines['bottom'].set_position(('data',0)) #将bottom线的位置设置为数据为0的位置
ax.spines['left'].set_position(('data',0)) #将left线的位置设置为数据为0的位置
ax.spines['top'].set_color('none') #将top线的颜色设置为无
ax.spines['right'].set_color('none') #将right线的颜色设置为无 # plt.xlabel('Time(s)')
# plt.ylabel('Value')
plt.title('Sine and Cosine')
# zorder 控制划线顺序:数值越小越先画
plt.plot(x, y_sin, label="$sin(x)$", color="blue", linewidth=2.5, linestyle="-", zorder=-2)
plt.plot(x, y_cos, label="$cos(x)$", color="red", linewidth=2.5, linestyle="-", zorder=-1)
plt.xlim(-4,4) # 设置x轴的范围
# plt.xticks(np.linspace(-4,4,9,endpoint=True))
# 设置x轴的标尺刻度,从-pi到pi,取5个值
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
plt.ylim(-1.2,1.2)
plt.yticks(np.linspace(-1,1,5,endpoint=True)) t = 2*np.pi/3
plt.plot([t,t],[0,np.cos(t)], color ='red', linewidth=1.5, linestyle="--")
plt.scatter([t,],[np.cos(t),], 50, color ='red')
plt.annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',
xy=(t, np.sin(t)), xycoords='data',
xytext=(+10, +30), textcoords='offset points', fontsize=16,
arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2")) plt.plot([t,t],[0,np.sin(t)], color ='blue', linewidth=1.5, linestyle="--")
plt.scatter([t,],[np.sin(t),], 50, color ='blue')
plt.annotate(r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$',
xy=(t, np.cos(t)), xycoords='data',
xytext=(-90, -50), textcoords='offset points', fontsize=16,
arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2")) # 对坐标轴上的标度单独做标注
for label in ax.get_xticklabels() + ax.get_yticklabels():
label.set_fontsize(14)
label.set_bbox(dict(facecolor='white', edgecolor='None', alpha=0.65 )) # plt.grid(True, which='major', c='gray', ls='-', lw=1, alpha=0.2)
plt.legend()
plt.show()

  

Matplotlib画正弦余弦曲线的更多相关文章

  1. python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)

    最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...

  2. Matplotlib学习---用matplotlib画箱线图(boxplot)

    箱线图通过数据的四分位数来展示数据的分布情况.例如:数据的中心位置,数据间的离散程度,是否有异常值等. 把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)分 ...

  3. Matplotlib学习---用matplotlib画雷达图(radar chart)

    雷达图常用于对多项指标的全面分析.例如:HR想要比较两个应聘者的综合素质,用雷达图分别画出来,就可以进行直观的比较. 用Matplotlib画雷达图需要使用极坐标体系,可点击此链接,查看对极坐标体系的 ...

  4. matplotlib画线(2)

    这篇随笔是matplotlib画线的补充>>> #nocl参数控制图例中有几列,>>> import numpy as np>>> import ...

  5. matplotlib 绘图实例01:正弦余弦曲线

    该讲的实例结果如下图所示: 第01步:导入模块,并设置显示中文和负号的属性: import matplotlib.pyplot as plt import numpy as np plt.rcPara ...

  6. Python 的 Matplotlib 画图库

    Matplotlib安装 NumPy库方便数值运算,但枯燥的数据并不利于人们的直观理解. 数据需要可视化. Matplotlib:一个数据可视化函数库 使用前需要安装  利用Python自带 ...

  7. 2.matplotlib画散点图

    2.1.身高和体重实例 import matplotlib.pyplot as plt height = [161,162,163,164,165] weight = [50,60,70,80,90] ...

  8. 使用matplotlib画饼图

    import matplotlib.pyplot as pltx = [4, 9, 21, 55, 30, 18]labels = ['math', 'history', 'chemistry', ' ...

  9. Matplotlib学习---用matplotlib画误差线(errorbar)

    误差线用于显示数据的不确定程度,误差一般使用标准差(Standard Deviation)或标准误差(Standard Error). 标准差(SD):是方差的算术平方根.如果是总体标准差,那么用σ表 ...

随机推荐

  1. SQLServer之创建Transact-SQL游标

    什么是游标 结果集,结果集就是select查询之后返回的所有行数据的集合. 游标则是处理结果集的一种机制吧,它可以定位到结果集中的某一行,多数据进行读写,也可以移动游标定位到你所需要的行中进行操作数据 ...

  2. 海思uboot启动流程详细分析(一)

    第一阶段 start.S 首先我们可以在u-boot.lds中看到ENTRY(_start),即指定了入口_start,_start也就是整个start.S的最开始: 1. reset 在arch\a ...

  3. 开启远程桌面连接windows的方法以及遇到的问题

    确认电脑的远程服务是否已经开启 开始--运行--输入“services.msc ”,打开服务,找到三个remote desktop开头的服务 Remote Desktop Configuration. ...

  4. 一个简易的kmp教学并给出java实现

    简单介绍一下问题 给定source字符串,找出target字符串出现的首位 例如 source   为“abddabddabc” target 为 “abddabc” 从第一位开始比较 |a b d ...

  5. EF Core使用笔记(基于MySql数据库)

    一.什么是EF Entity Framework 是适用于.NET 的对象关系映射程序 (O/RM). 二.比较 EF Core 和 EF6 1.Entity Framework 6 Entity F ...

  6. Linux ISCSI服务配置

    Linux ISCSI服务配置,客户端进行访问 环境配置: server端 172.25.0.11 client端 172.25.0.10 配置ISCSI服务端 1.安装软件包 yum install ...

  7. js数组中随机选取一个数值!!

    var arr = ["太阳光大","成功是优点的发挥","不要小看自己", "口说好话","手心向下是助人& ...

  8. 偶发异常BUG,如何高效精准分析排查定位?

    偶发异常BUG,如何高效精准分析排查定位? 作为测试,经常会收到领导.同事.用户反馈过来各种各样BUG,令人措手不及 首选需要判断确认是不是BUG,不要急于给予回复,需有充分的条件给予说明回复 很多测 ...

  9. AtCoder ABC 042D いろはちゃんとマス目 / Iroha and a Grid

    题目链接:https://abc042.contest.atcoder.jp/tasks/arc058_b 题目大意: 给定一个 H * W 的矩阵,其中左下角 A * B 区域是禁区,要求在不踏入禁 ...

  10. MySQL——合并查询结果

    利用  UNION 关键字,可以给出多条  SELECT  语句,并将它们的结果组合成一个结果集.合并时,两个表对应的列数和数据类型必须相同.SELECT 语句之间使用  UNION  或  UNIO ...