import matplotlib.pyplot as mp

1. 基本的绘图

  mp.plot(水平坐标, 垂直坐标, linestyle=线型, linewidth=线宽, color=颜色, ...)

2. 设置坐标范围
  mp.xlim(水平坐标最小值, 水平坐标最大值)
  mp.ylim(垂直坐标最小值, 垂直坐标最大值)

3. 设置坐标刻度
  mp.xticks(位置序列[, 标签序列])
  mp.yticks(位置序列[, 标签序列])

4. 设置坐标轴
  坐标轴名:left/right/bottom/top
  ax = mp.gca() # 获取当前坐标轴
  ax.spines['坐标轴名'].set_position((坐标系, 坐标值))
  ax.spines['坐标轴名'].set_color(颜色)

5 .图例
  mp.plot(..., label=图例标签, ...)
  mp.legend([loc=位置])

6. 特殊点
  mp.scatter(水平坐标数组, 垂直坐标数组, marker=点型, s=大小,color=颜色, edgecolor=边缘色, facecolor=填充色,zorder=图层序号)

7. 备注
mp.annotate(备注文本,xy=目标坐标,xycoords=目标坐标系,xytext=文本坐标,textcoords=文本坐标系,fontsize=字体大小,arrowprops=箭头线属性)

import numpy as np
import matplotlib.pyplot as mp x = np.linspace(-np.pi, np.pi, 1000)
print(x)
cos_y = np.cos(x)/2
sin_y = np.sin(x) xo = np.pi * 3/4
yo_cos = np.cos(xo)/2
yo_sin = np.sin(xo) # 设置图的标题
mp.title("zengsf")
# 设置坐标轴, 边缘空白处一般是最大或最小的百分之十
# mp.xlim(水平坐标最小值, 水平坐标最大值)
mp.xlim(x.min() * 1.1, x.max() * 1.1)
mp.ylim(sin_y.min() * 1.1, sin_y.max() * 1.1)
# 设置坐标刻度
# mp.xticks(位置序列[, 标签序列])
mp.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], [r'$-\pi$', r'$-\frac{\pi}{2}$', r'$0$', r'$\frac{\pi}{2}$', r'$\pi$'])
mp.yticks([-1, -0.5, 0.5, 1]) # 获取当前坐标轴
ax = mp.gca()
ax.spines["left"].set_position(('data', 0))
ax.spines["bottom"].set_position(('data', 0))
ax.spines["top"].set_color("none")
ax.spines["right"].set_color("none") # linestyle:设置线型,linewidth:设置线宽,color:设置线的颜色, label:图例,标签
mp.plot(x, cos_y, linestyle="--", linewidth=1, color="violet", label=r'$y=\frac{1}{2}cos(x)$')
mp.plot(x, sin_y, linestyle="-.", linewidth=3, color="lime", label=r'$y=sin(x)$') # 将两个点连接起来
mp.plot([xo, xo], [yo_cos, yo_sin], linestyle="-", color="red") # mp.scatter(水平坐标, 垂直坐标, marker=点型, s=大小,color=颜色, edgecolor=边缘色, facecolor=填充色,zorder=图层序号)
mp.scatter([xo, xo], [yo_cos, yo_sin], s=60, edgecolors="limegreen", facecolor="white", zorder=7, marker="^") # mp.annotate(备注文本,xy=目标坐标,xycoords=目标坐标系,xytext=文本坐标,textcoords=文本坐标系,fontsize=字体大小,arrowprops=箭头线属性)
mp.annotate(r'$\frac{1}{2}cos(\frac{3\pi}{4})=-\frac{\sqrt{2}}{4}$',
xy=(xo, yo_cos), xycoords="data",
xytext=(-90, -40), textcoords="offset points",
fontsize=14, arrowprops=dict(arrowstyle="->", connectionstyle="arc3, rad=.2"),
) mp.annotate(r'$\frac{1}{2}cos(\frac{3\pi}{4})=\frac{\sqrt{2}}{2}$',
xy=(xo, yo_sin), xycoords="data",
xytext=(-10, 40), textcoords="offset points",
fontsize=14, arrowprops=dict(arrowstyle="->", connectionstyle="arc3, rad=.2"),
) # legend主要是控制图例的位置
mp.legend(loc="upper left")
mp.show()

matplotlib画sin(x)和cos(x)/2的更多相关文章

  1. 用matplotlib画线

    1:matplotlib基础 Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形[1] . 通过 Matplotlib,开发者可以 ...

  2. matplotlib画线(2)

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

  3. 利用pyplot绘制sin(x)和cos(x)的组合图像

    一.实验目标 (1)   掌握numpy库的使用 (2)   掌握matplotlib库的使用 (3)   掌握pyplot的基本函数和方法 二.实验内容 import matplotlib.pyla ...

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

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

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

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

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

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

  7. Matplotlib画正弦余弦曲线

    参考1:http://www.labri.fr/perso/nrougier/teaching/matplotlib/ 参考2:https://matplotlib.org/api/artist_ap ...

  8. Python 的 Matplotlib 画图库

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

  9. Python学习-使用matplotlib画动态多图

    最近常常使用matplotlib进行数学函数图的绘制,可是怎样使用matplotlib绘制动态图,以及绘制动态多图.直到今天才学会. 1.參考文字 首先感谢几篇文字的作者.帮我学会了怎样绘制.大家也能 ...

随机推荐

  1. Linux下执行Oracle的sql脚本

    (1)  启动监听: Root用户登录后,输入: $su – oracle 回车(Oracle为Oracle数据库安装用户,必须有横杠: - ) 启动监听: $lsnrctl start --启动 $ ...

  2. Ubuntu 18.04拨号上网及校园网开启IPV6

    Ubuntu 18.04下有两种方法实现拨号上网,第一种是通过图形界面添加,需要开启自动连接,并且要关闭以太网的自动连接.(不推荐这种连接方式)这里介绍第二种,通过pppoeconf命令进行拨号. 关 ...

  3. Swagger2使用参考

    GitHub例子: 参考博客: https://blog.csdn.net/sanyaoxu_2/article/details/80555328 http://www.cnblogs.com/Joi ...

  4. 【Entity Framework】disable automatic migration, 执行update-migration仍然会显示有automatic migration

    本文涉及的相关问题,如果你的问题或需求有与下面所述相似之处,请阅读本文 [Entity Framework] disable automatic migration, 执行update-migrati ...

  5. vue的环境配置

    在vue越来越火的情况下,本人也开始加入到大军当中. 首先,列举下我们需要的东西: node.js 环境(npm包管理器) vue-cli 脚手架构建工具 cnpm npm的淘宝镜像 安装node.j ...

  6. jQuery页面替换+php代码实现搜索后分页

    HTML代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...

  7. 【三】jquery之选择器

    转自:https://www.cnblogs.com/youfeng365/p/5846650.html jquery参考手册:http://jquery.cuishifeng.cn/index.ht ...

  8. English trip EM2-LP-4B At school Teacher:Will

    课上内容(Lesson) 词汇(Key Word ) art  美术:艺术 business  商科 engineering  工程学 graphic design  平面造型学 history  历 ...

  9. Centos 中 service iptables stop 失败

    Centos7中的防火墙调整为firewalld,试一下systemctl stop firewalld关闭防火墙.

  10. a*b高精度数组算法

    #include<stdio.h> #include<string.h> int main() { ]={},b[]={},c[]={},len1=,len2=; ],str2 ...