当前位置: 首页 > 知识库问答 >
问题:

JFreeChart:在XYLineChart的轴上添加自定义字符串标记

米楷
2023-03-14

我的应用程序正在生成大量的木线图(

每个数据点都有一个序号(从1到185000),用于X轴刻度值(带自动范围的整数值):

plot.getDomainAxis().setStandardTickUnits(NumberAxis.createIntegerTickUnits());


到目前为止效果很好。现在的困难是添加一个带有自定义值的X轴标记,因为我想为显示的第一个和最后一个数据点添加一个X轴标签(我想显示第一个和最后一个数据点生产日期-它们已经按时间顺序排序)。

我花了几个小时搜索:似乎它绝对不支持JFreeChart。我也没有为此找到任何黑客(例如,注释只能放在情节上)。

关于如何解决这个问题的任何指针/想法都将不胜感激!

托马斯

PS:图表可以放大/缩小,因此需要相应地更新自定义刻度。

PS2:使用类别轴似乎不是一个解决方案,因为它不会自动更改刻度范围(我认为)

共有1个答案

施俊驰
2023-03-14

您可以考虑使用<代码> No.BurnFrastOpReave<代码>

Calendar startDate = Calendar.getInstance();
final String firstDataPointProductionDate = startDate.getTime().toString();
startDate.add(Calendar.DATE, 10);
final String latDataPointProductionDate = startDate.getTime().toString();
axis.setNumberFormatOverride(new NumberFormat(){

    @Override
    public StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos) {
        if (number > 0 )
            return new StringBuffer(firstDataPointProductionDate);
        else if ( number < 185000 )
            return new StringBuffer(latDataPointProductionDate);
        else 
            return new StringBuffer(String.format("%9.0f", number));
        }

    @Override
    public StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos) {
        return new StringBuffer(String.format("%s", number));
    }

    @Override
    public Number parse(String source, ParsePosition parsePosition) {
        return null;
    }
});

您可以根据需要设置日期的格式

 类似资料:
  • 我正在使用jFreechart创建这样的折线图(取自演示): 是否可以将范围和域转换为Unicode编码系统? 非常感谢。

  • 问题内容: 在Ruby中,您可以使用自定义方法覆盖任何内置对象类,如下所示: 我如何在python中做到这一点?有正常的方法还是黑客? 问题答案: 您不能这样做,因为内建类型是用C编码的。您可以对类型进行子类化: 测试: 您还可以使用来覆盖str-type ,但这并不意味着您可以使用文字,因为它链接到内建的。

  • 问题内容: 使用新版本时,我在创建一些图形时遇到了一些麻烦,以前的代码是: 您可以使用以下行来传递值,例如,月份数组: 新版本发布后,用于实现相同图形的代码为: 我尝试了几个小时,但找不到修改X轴值的方法,希望有人可以帮助我,谢谢! 问题答案: 我找到了解决方案,也许另一个解决方案可以更好地解决此问题,而无需创建新类,这就是我发现的: 首先,您需要创建一个新类,该类将是您的格式化程序类,并添加IA

  • 我试图找出如何控制一个XYLineChart的2个不同XYSeries的标签。例如,我有一个直线系列显示房屋的实际市场价值,另一个直线系列显示最大评估价值。但是,行上的某些标签重叠。我能够通过访问XYItemRenderer和ItemLabelPosition来控制线的整体标记,但这是一个整体。我需要调整每一行上的标签。有什么建议吗?谢谢

  • 问题内容: 我想在SqlServer连接字符串中添加一些自定义属性,如下所示: 然后在sql中获取该属性。例如 问题答案: 没有通用的方法可以通过客户端API传递自定义连接字符串属性并使用T-SQL进行检索。但是,您有许多选择。以下是一些。 方法1:在连接字符串中使用Application Name关键字最多传递128个字符,并使用APP_NAME()T-SQL函数进行检索: 请注意,此限制为12