python>>Matplotlib模块

绘制简单的三角函数

  • 正弦函数,余弦函数
  • 平移坐标轴
  • 绘制标注点

目录

绘制简单的三角函数

正弦函数,余弦函数

平移坐标轴

绘制标注点


Matplotlib可能是最常用的 2D 图形 Python 包。它提供了一种快速可视化来自 Python 的数据和多种格式的出版物质量图形的方法。我们将以交互模式探索 matplotlib,涵盖最常见的情况。

绘制简单的三角函数

正弦函数,余弦函数

import numpy as np
from matplotlib import pyplot as plt
X = np.linspace(-np.pi,np.pi,256)
C,S =np.cos(X),np.sin(X)
plt.plot(X,C)
plt.plot(X,S)
plt.show()

  • 注意,matplotlib模块在这里会默认绘制纵坐标的长度,长度跟所需要绘制的函数有关。因此代码中并没有出现纵坐标的描述,依然能够绘制出三角函数。比如当绘制tan(x)时,此时的图形是这种的。纵坐标明显上升很多。

  •  但是这种图像仍然不符合平常手绘的图形,我们想要绘制的图型是黑色线条的。


平移坐标轴

  • 如何绘制出坐标轴在中间的效果。
import numpy as np
from matplotlib import pyplot as plt
X = np.linspace(-np.pi,np.pi,256)
C,S=np.cos(X),np.sin(X)
plt.figure(figsize=(10,6),dpi = 80)
plt.plot(X,C,color='blue',linewidth = 2.5,linestyle= '-')
plt.plot(X,S,color='green',linewidth = 2.5,linestyle='-')
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
# ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))

  • 首先得到这个图形的坐标轴平面,再将坐标轴的右边和上边部分的黑色边界设置为空白色的,最后将左边的和下边的边界线移动到中间的位置

绘制标注点

import numpy as np
from matplotlib import pyplot as plt
X = np.linspace(-np.pi,np.pi,256)
C,S=np.cos(X),np.sin(X)
plt.figure(figsize=(10,6),dpi = 80)
plt.plot(X,C,color='blue',linewidth = 2.5,linestyle= '-')
plt.plot(X,S,color='green',linewidth = 2.5,linestyle='-')
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
# ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))

t = 2 * np.pi / 3
plt.plot([t, t], [0, np.cos(t)], color='blue', linewidth=2.5, linestyle="--")
plt.scatter([t, ], [np.cos(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.plot([t, t],[0, np.sin(t)], color='red', linewidth=2.5, linestyle="--")
plt.scatter([t, ],[np.sin(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"))

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=1kbizo7h4z17g

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Li&&Tao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值