弧度刻度#

使用 basic_units 模拟示例包中的弧度绘图。

这个示例展示了单元类如何确定刻度定位、格式化和轴标签。

此示例需要 basic_units.py

Traceback (most recent call last):
  File "/Users/cw/baidu/code/fin_tool/github/matplotlib/galleries/examples/units/radian_demo.py", line 33, in <module>
    axs[0].plot(x, cos(x), xunits=radians)
                   ^^^^^^
  File "/Users/cw/baidu/code/fin_tool/github/matplotlib/galleries/examples/units/radian_demo.py", line 28, in cos
    return [math.cos(val.convert_to(radians).get_value()) for val in x]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/cw/baidu/code/fin_tool/github/matplotlib/galleries/examples/units/radian_demo.py", line 28, in <listcomp>
    return [math.cos(val.convert_to(radians).get_value()) for val in x]
                     ^^^^^^^^^^^^^^
AttributeError: 'numpy.float64' object has no attribute 'convert_to'

from basic_units import cos, degrees, radians

import matplotlib.pyplot as plt
import numpy as np
import math

def cos(x):
    # 检查输入是否为 numpy 数组
    if isinstance(x, np.ndarray):
        return np.cos(x)  # 使用 numpy 的 cos 函数来处理
    # 原来的逻辑
    return [math.cos(val.convert_to(radians).get_value()) for val in x]

x = [val*radians for val in np.arange(0, 15, 0.01)]
fig, axs = plt.subplots(2)

axs[0].plot(x, cos(x), xunits=radians)
axs[1].plot(x, cos(x), xunits=degrees)

fig.tight_layout()
plt.show()

由 Sphinx-Gallery 生成的图库