0

我正在使用 (Clojure's) Incanter 的热图来显示 (x, y) 的枢轴值,其中 x 和 y 分别代表一些产品和应用程序。就热图而言,使用 xyplot 来完成这项工作。我使用 Symbolaxis 分别在 x 轴和 y 轴上显示产品和应用程序。

在默认设置下(值轴的自动范围设置为true),值轴上的标签不完整,取决于Java窗口的大小,显示一些标签,而另一些则省略。似乎规则是先显示一个,然后隐藏固定数量的标签,然后再显示另一个,重复......也许,这是为了避免标签文本相互碰撞。

但我想显示所有标签,我想放大热图大小以显示所有标签。

您能否教我如何:1)强制显示 Symbolaxis 的所有标签,或 2)放大热图大小以容纳所有刻度标签。3) 减小tick laebl 的字体大小也可以为更多标签节省更多空间。

在我看来,JFreechart 没有关于这种细微差别的详细文档。我还没有找到源代码的位置来弄清楚。

这是我的热图示例: 我希望在值轴上有所有刻度标签的热图

在所附的图表中,只显示了四分之一的标签。使用部分标签,热图确实很有意义。

注意:我尝试将 AutoRange 设置为 false,但更糟糕的是,只显示了从底部开始的第一行。

非常感谢你的帮助!

4

1 回答 1

1

1) 要强制显示所有标签,您需要修改SymbolAxis 类中的 refreshTicksHorizo ​​ntal()refreshTicksVertical()方法(请注意,您可以通过 Javadocs 单击源代码,只需单击方法名称) . 在这些方法中,搜索注释,您将看到需要更改的代码。// don't draw this tick label

2) JFreeChart总是调整图表绘图以适应外部指定的大小(通过从 Swing 布局管理器获取其大小的 ChartPanel,或者由一些调用者要求 JFreeChart 生成特定大小的图像、SVG、PDF 等)。

3) SymbolAxis继承了Axis 基类的setTickLabelFont()方法,因此您可以使用它来使标签使用更小的字体。

于 2014-06-27T04:35:11.677 回答