我可以使用matplotlib.units在图表上显示的单位之间切换吗?

bde*_*ham 8 matplotlib

我正在使用matplotlib在桌面应用程序中渲染图形,我对matplotlib对单位的支持感到有些困惑.我想让用户更改图表x轴上显示的单位:所有计算都将以纳米为单位进行,但图表可以以纳米或千兆赫为单位显示.(请注意,这两个单位之间存在反向关系,而非线性关系.)

有两种显而易见的方法:"手动"或使用matplotlib.在前一种情况下,matplotlib对单位一无所知; 当用户更改单位时,我只需重新计算所有数据点,更改轴的边界和标签,并告诉matplotlib重绘.但我希望matplotlib具有内置功能来做同样的事情.

有一些轻量级文档matplotlib.units,但据我所知,这是用于绘制用户指定对象的数组,而不是浮点数组.我的数据实际上是一个浮点数组,由于每个图表有数十万个数据点,我无法将每个值包装在某个自定义模型类中.(即使这个简单的例子将每个数据点包装在一个模型类中,整个例子都是如此通用,我无法告诉我如何根据我的需要调整它.)无论如何,原始数据点总是具有相同的单位,因此只需要将值转换另一个单位.

我怎样才能告诉matplotlib我的单位然后只是用axes.set_xunit它们之间的东西来改变它们?

bde*_*ham 2

我找不到使用 matplotlib\xe2\x80\x94 来完成此操作的令人满意的方法,我不希望 \xe2\x80\x99 不想将每个数据值包装在对象中的开销。我决定在将数据传递给 matplotlib 之前自己进行单位转换。

\n