一.导入模块

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['SimHei'] # 用于正常显示中文标签
plt.rcParams['axes.unicode_minus']=False   # 用来正常显示负号

二.创建数据

1.从-pi到pi平均取256个点

#获取x坐标
X=np.linspace(-np.pi,np.pi,256,endpoint=True)

2.根据X的值,求正弦和余弦函数

#获取y坐标
sin,cos=np.sin(X),np.cos(X)

三.开始画图

1.画正弦,余弦函数图

plt.plot(X,sin,"b-",lw=2.5,label="正弦")
plt.plot(X,cos,"r-",lw=2.5,label="余弦")'''
X:   x轴
sin: y轴
cos: y轴
b-:  color="blue",linestyle="-"的简写
lw:  linewidth
'''


2.将x,y轴同时拉伸1.5倍

plt.xlim(X.min()*1.5,X.max()*1.5)
plt.ylim(cos.min()*1.5,cos.max()*1.5)


3.设置x,y轴的坐标刻度

plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
plt.yticks([-1,0,1])


4.获取Axes对象

ax=plt.gca()

5.隐藏右边界和上边界

ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')


6.将x,y坐标轴刻度显示到下方位置

ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))


7.平移坐标轴

ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))

四.为函数图添加特殊点

1.设定x轴值并找出点坐标位置,根据两点绘制一条直线

t=2*np.pi/3 #设定点x轴值#第一个列表是x轴坐标值,第二个列表是y轴坐标值plt.plot([t,t],[0,np.sin(t)],color ='b',linewidth=2.5,linestyle="--")
#这两个点坐标分别为(t,0)和(t,np.sin(t)),根据两点画直线l1plt.plot([t,t],[0,np.cos(t)],color ='r',linewidth=2.5,linestyle="--")
#这两个点坐标分别为(t,0)和(t,np.cos(t)),根据两点画直线l2


2.用绘制散点图的方法在正弦,余弦函数上标注这两个点的位置

plt.scatter([t,],[np.sin(t),], 50, color ='b')
plt.scatter([t,],[np.cos(t),], 50, color ='r')


3.为图表添加注释

plt.annotate(r'$\sin(\frac{2\pi}{3})=-\frac{1}{2}$',xy=(t, np.sin(t)), #点的位置xycoords='data',   #注释文字的偏移量xytext=(50,50),    #文字离点的横纵距离textcoords='offset points',fontsize=13,       #注释的大小arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2")) #箭头指向的弯曲度
plt.annotate(r'$\cos(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',xy=(t, np.cos(t)), xycoords='data',xytext=(-50,-50),textcoords='offset points',fontsize=13,arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))


4.获取x,y轴的刻度,并设置字体

for label in ax.get_xticklabels()+ax.get_yticklabels():           #获取刻度label.set_fontsize(18)                                        #设置刻度字体大小label.set_bbox(dict(facecolor='r',edgecolor='g',alpha=0.2))   #set_bbox为刻度添加边框#facecolor:背景填充颜色#edgecolor:边框颜色#alpha:透明度


5.显示图例

plt.legend(loc='upper left')

第4步添加边框时,一般用以下这个代码,此步骤主要是为了使坐标轴刻度更清晰

label.set_bbox(dict(facecolor='w',edgecolor='None',alpha=0.5))

五.重要参数知识

plt

•利用np.linspace(-np.pi,np.pi,256,endpoint=True)
可以快速生产数据
• 通过plt.gca()获得当前的Axes对象ax
• 通过plt.xlim()方法来实现图表的留白
• 通过plt.xticks()、plt.yticks() 来设置坐标轴刻度
• 通过plt.annotate() 方法来为图表添加注释
• for label in ax.get_xticklabels() + ax.get_yticklabels():
方式来遍历图表中的label对象

matplotlib—画正弦、余弦函数图相关推荐

  1. c语言画正弦余弦函数,用C/C++绘制出余弦曲线和正弦曲线(不使用库函数)

    用C/C++绘制出余弦曲线和正弦曲线(不使用库函数) 用C/C++绘制出余弦曲线和正弦曲线(不使用库函数) - 余弦函数 - 正弦函数 #include #include #define PI 3.1 ...

  2. python绘制时间序列图_python matplotlib 画dataframe的时间序列图实例

    python matplotlib 画dataframe的时间序列图实例 在python中经常会用到pandas来处理数据,最常用的数据类型是dataframe,但是有时候在dataframe有时间字 ...

  3. 如何用python画出一般函数图_如何使用python的matplotlib画一元一次函数图像

    python是一个很有趣的语言,可以在命令行窗口运行.python中有很多功能强大的模块,这篇经验告诉你,如何利用python的matplotlib模块,绘制一元一次函数的图像. 工具/原料 wind ...

  4. 怎么用python画简单的图-Python | 用matplotlib画些简单的图

    环境是python3.7,工具使用的是jupyter-notebook交互式笔记本 引入相关库 from pandas import DataFrame,Series import matplotli ...

  5. 【Python】Matplotlib绘制正余弦曲面图

    Matplotlib绘制正弦曲面图 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d impor ...

  6. python怎么画简单图-Python | 用matplotlib画些简单的图

    环境是python3.7,工具使用的是jupyter-notebook交互式笔记本 引入相关库 from pandas import DataFrame,Series import matplotli ...

  7. 用Python画一个sin函数图

    Matplotlib可视化模块安装 初次使用Python需首先安装Matplotlib的可视化模块实现数据的可视化. 打开anaconda3输入 pip install matplotlib 导入模块 ...

  8. python 绘制正弦余弦函数 matplotlib的基本使用

    """matplotlib的基本使用 """ import matplotlib.pyplot as mp import numpy as ...

  9. 使用matplotlib画简单的3d图

    import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D#设置三维坐标 fi ...

最新文章

  1. 小程序 sha1和服务器有关系吗,微信小程序使用sha1实现密码加密的方法介绍
  2. Android M 权限
  3. “重金求来”Alibaba技术官并发编程笔记,附Java面经
  4. Sublime Text 3 Mac常用快捷键与注意事项
  5. Android 中Touch(触屏)事件传递机制
  6. [RN] React Native 使用 Redux 比较详细和深刻的教程
  7. 音视频学习(五)——H.264视频码流
  8. python实现excel到word转换
  9. python jinja2_Python模块学习 - jinja2
  10. 数据结构——基数排序(经典以空间换时间案例)
  11. Opencv图像识别从零到精通(34)---SIFI
  12. ios 在window和mac上另类打包方式
  13. QUIC不可靠的数据报扩展(An Unreliable Datagram Extension to QUIC)
  14. 血栓清道夫机器人_这几种食物是血管“清道夫”,每天吃一点,清除血管垃圾,防血栓...
  15. [实用技巧] (转帖)关于MyDocument.exe -- 打印店病毒
  16. 副业兼职: 在家就可以做的兼职项目推荐
  17. nginx开启https功能
  18. 多线程的40个面试题总结(上)
  19. VMware GPU虚拟化简介
  20. CentOS安装网站安全狗

热门文章

  1. PTA L1-039 python实现
  2. Android之使用HttpPost提交数据到服务器(Android手机客户端和后台服务器交互)
  3. 美团和支付宝,越来越像
  4. 做新时代的忠诚爱国者写一篇议论文800字
  5. 自学前端第一天:认识前端工程与网页
  6. 常见RGB 颜值表和半透明颜色值的写法
  7. Python AQI空气污染指数数据分析与机器学习
  8. 有什么样的将军就有什么样的兵
  9. NYOJ - 独木舟上的旅行(贪心)
  10. 我如何建立热线电话喀拉拉邦并为抗洪救灾做出了贡献