数据分析DAY02_绘图工具

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import numpy as np
import matplotlib.pyplot as mp
#用于产生x1,x2之间的N点行矢量,相邻数据跨度相同。
#其中x1、x2、N分别为起始值、终止值、元素个数。若缺省N,默认点数为100。
x = np.linspace(-np.pi, np.pi, 1000)
#函数表达式
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.xlim(x.min() * 1.1, x.max() * 1.1)
mp.ylim(sin_y.min() * 1.1, sin_y.max() * 1.1)
#y轴上的标记显示点位
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['right'].set_position(('data', 0))
ax.spines['top'].set_position(('data', 0))
# ax.spines['right'].set_color('none')
# ax.spines['top'].set_color('none')

#自定义设置坐标轴显示内容
# 第二个参数不写会把第一个列表中的参数格式化为字符串
mp.xticks([-np.pi, -np.pi / 2, 0, np.pi / 2, np.pi * 3 / 4, np.pi],
          [r'$-\pi$', r'$-\frac{\pi}{2}$', r'$0$', r'$\frac{\pi}{2}$',
           r'$\frac{3\pi}{4}$', r'$\pi$'])
#绘图函数
mp.plot(x, cos_y, linestyle='-', linewidth=2,
        color='dodgerblue', label=r'$y=\frac{1}{2}cos(x)$')
mp.plot(x, sin_y, linestyle='-', linewidth=2.5,
        color='orangered', label=r'$y=sin(x)$')
mp.plot([xo, xo], [yo_cos, yo_sin],
        linestyle='--',
        linewidth=1, color='green')
#显示标注点
mp.scatter([xo, xo], [yo_cos, yo_sin],
           s=60, edgecolor='limegreen', facecolor='white', zorder=3)  
           
#标注点显示标注
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=0.2'))
mp.annotate(
    r'$sin(\frac{3\pi}{4})=\frac{\sqrt{2}}{2}$',
    xy=(xo, yo_sin),
    xycoords='data',
    xytext=(-90, -40),
    textcoords='offset points',
    fontsize=14,
    arrowprops=dict(arrowstyle='-|>',
                    connectionstyle='arc3,rad=0.2'))

mp.legend(loc='upper left')#显示文本位置loc
mp.show()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值