备注
前往结尾 下载完整示例代码。
弧度刻度#
使用 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()