zl程序教程

您现在的位置是:首页 >  Python

当前栏目

python>>Matplotlib模块

2023-02-18 16:33:59 时间

绘制简单的三角函数

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

目录

绘制简单的三角函数

正弦函数,余弦函数

平移坐标轴

绘制标注点


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