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. TCP三次握手与四次分手超简单解析

    关于TCP三次握手四次分手,之前看资料解释的都很笼统,很多地方都不是很明白,所以很难记,前几天看的一个博客豁然开朗,可惜现在找不到了.现在把之前的疑惑总结起来,方便一下大家. 先上个TCP三次握手和四 ...

  2. 关于redis集群的问题no reachable node in cluster

    重新启动redis集群时启动失败 n context with path [] threw exception [Request processing failed; nested exception ...

  3. [BZOJ2298]problem a

    Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) Input 第一行一个整数n,接下来n行每行两个 ...

  4. Learning-Python【3】:Python中的基本运算符

    一.算数运算 二.比较(关系)运算 比较运算只能在同类型之间进行,其中 int 与 float 同属于数字类型 三.赋值运算 1.增量赋值 2.链式赋值 3.交叉赋值 交换两个数的值,通常要借助第三个 ...

  5. Sublime text3修改tab键为缩进为四个空格

    1.打开设置界面 2.设置属性 , "translate_tabs_to_spaces": true, "expand_tabs_on_save": true ...

  6. Unity---判断某个点是否在摄像机的视景范围内

    using UnityEngine; [RequireComponent(typeof(Camera))] public class VisualDetectionCamera : MonoBehav ...

  7. legend2---开发日志10(ajax请求的方法是否同样会执行base控制器里面的方法)

    legend2---开发日志10(ajax请求的方法是否同样会执行base控制器里面的方法) 一.总结 一句话总结:会执行的,所以写base控制器里面的方法要注意,base控制器里面的方法要以查数据为 ...

  8. babel-node + Express NodeJS项目搭建指南

    1.搭建Node.js环境 从官网下载安装 2.搭建Express环境 express 是 node.js的短精简的Web框架,官网:http://www.expressjs.com.cn/ 安装: ...

  9. jps: command not found

    在/etc/profile中添加javahome的 path export JAVA_HOME=/usr/java/jdk1.8.0_131export PATH=$PATH:$JAVA_HOME/b ...

  10. pymysql的使用与参数简要

    pymysql.Connect()参数说明 host(str): MySQL服务器地址 port(int): MySQL服务器端口号 user(str): 用户名 passwd(str): 密码 db ...