这里有一个“mixin vs inheritance”问题:上述解决方案仅适用于线性标度;如果图表具有多种类型的轴(例如,类别、时间、线性),则必须扩展所使用的标度的所有类别。扩展基本情况Scale将不起作用,因为派生类(例如CategoryScale)使用原始类,而不是扩展的类。这就是为什么mixin是一种适用于任何类型的轴的解决方案,尽管看起来更黑客。 在下面的示例中,drawGrid在其beforeDataLimits回调中被更改(每个轴仅更改一次)。因此,对于每个轴,给出不同的绘图函数drawXTick和drawYTick,一个是线性的,另一个是分类的。
1条答案
按热度按时间9rygscc11#
可以通过扩展图表所使用的刻度类来绘制自定义刻度,如documentation中所述。特别地,要在线性轴上绘制圆形刻度,可以覆盖
LinearScale
的drawGrid
方法:如下面的示例中使用:
这里有一个“mixin vs inheritance”问题:上述解决方案仅适用于线性标度;如果图表具有多种类型的轴(例如,类别、时间、线性),则必须扩展所使用的标度的所有类别。扩展基本情况
Scale
将不起作用,因为派生类(例如CategoryScale
)使用原始类,而不是扩展的类。这就是为什么mixin是一种适用于任何类型的轴的解决方案,尽管看起来更黑客。在下面的示例中,
drawGrid
在其beforeDataLimits
回调中被更改(每个轴仅更改一次)。因此,对于每个轴,给出不同的绘图函数drawXTick
和drawYTick
,一个是线性的,另一个是分类的。