如何在 JFreeChart 中的数轴域上旋转刻度线标签?
就像在下面的示例中所做的那样,我希望图表域上的刻度线标签旋转 45 度,如下图表所示: http://left.subtree.org/2007/08/14/ rotate-labels-jfreechart/
不同的是,我想在带有数字轴的散点图上执行此操作。我在 NumberAxis 类中找不到与 setCategoryLabelPositions() 等效的方法。
Just like is being done in the following example, I want the tick mark labels on the domain of chart to be rotated 45 degrees as the are in this chart:
http://left.subtree.org/2007/08/14/rotate-labels-jfreechart/
The difference is, I want to do this on a scatter plot with a numeric axis. I can't find an equivalent to setCategoryLabelPositions() in the class NumberAxis.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
给出的第一个答案是针对数字域轴的。如果您有类别轴,则需要以下代码:
The first answer given is for a numeric domain axis. If you have a category axis, you want this code:
方法
setVerticalTickLabels()
可能是一种替代方法。如果没有,我看不到任何选择,只能重写refreshTicksHorizontal()
。另请参阅此示例 。The method
setVerticalTickLabels()
may be an alternative. If not, I don't see any choice but to overriderefreshTicksHorizontal()
. See also this example.您必须查看超类: Axis.setLabelAngle(rad)。
这是一个示例。
编辑:上面没有用,抱歉。
我查看了org.jfreechart.chart.axis.NumberAxis.refreshTicksHorizontal的代码。实际上有一个角度设置为 0.0(所有
new NumberTick(...,0.0)
构造函数中的最后一个参数)。您可以创建一个 NumberAxis 的子类,用使用不同角度(在构造函数中指定)的方法来重写刷新TicksHorizontal 方法。看起来在绘制图表时总是会调用refreshTicks,所以你不必担心它没有被调用。
You have to look at the super class: Axis.setLabelAngle(rad).
And here is an example.
EDIT: above was not useful, sorry.
I looked at the code of org.jfreechart.chart.axis.NumberAxis.refreshTicksHorizontal. There is actually an angle that is set to 0.0 (the last argument in all the
new NumberTick(...,0.0)
constructors). You could make a subclass of NumberAxis that overrides the method refreshTicksHorizontal with one which uses a different angle (specified in your constructor).It looks like refreshTicks is always called when drawing the graph, so you don't have to worry about it not being called.