参考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. Review: Basic Knowledge about JavaScript 1

    JavaScript shanzm

  2. 西湖论剑2019复现-Web之首家线上赌场上线啦

    首页打开 经过测试发现name和code参数可控,但尝试注入没有发现注入点,于是直接扫描目录找思路 一扫描,果然有问题 目录扫描里面可以看到有一个/.DS_Store的文件,DS_Store是Mac ...

  3. asp.net FromBody接收不到参数的解决方法

    今天改一个前端框架(angularjs,不兼容ie内核,需要修改),后台框架是已经写好了的,不用修改. 接口接收参数如下: [HttpPost] public async Task<Schedu ...

  4. idea中Springcloud同时运行多个模块、微服务

    idea中有个窗口叫做 Run DashBoard 在这里可以管理多个模块的启停,这个面板一般情况下是关闭的打开Run DashBoard面板 在工程的.idea中找到workspace.xml,并找 ...

  5. 考据:internet 和 Web

    我们有时大谈互联网发展趋势,有时讨论Web开发:有时说因特网如何,有时又说万维网怎样.但身处其间我们,有时雾里看花,对有些东西一知半解,这里对internet和Web进行一个简单梳理(很多东西缺少可信 ...

  6. LVM 磁盘分区扩容

    前提:将磁盘中未分区磁盘进行分区操作 https://www.cnblogs.com/guoxiangyue/p/10033367.html 然后进行vg扩容 pvcreate /dev/sdc lv ...

  7. 013_针对单个pid的cpu/内存/io的资源占用统计

    #!/usr/bin/env python import sys import os import subprocess from decimal import Decimal from decima ...

  8. open-vm-tools与VMware Tools

    安装VMware Tools经常会出现兼容性不好,系统之间复制文件失灵,并且安装时提示建议使用open-vm-tools,于是放弃vmware-tools的安装,尝试使用open-vm-tools o ...

  9. ansible-playbook(nginx例)

    一.创建目录结构 cd /etc/ansible/roles/ mkdir nginx/{files,templates,vars,handlers,meta,default,tasks} -pv 二 ...

  10. OO第二单元总结——多线程电梯

    第五次作业分析 1.设计策略 调度器采用单例模式,内部设请求队列,对请求队列的一切操作(查.增.删)都在调度器内完成,且都要求串行,从而确保线程安全.接收器和电梯是两个线程:接收器接受请求调用调度器来 ...