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

域轴最小值表达式的动态设置

鄢英毅
2023-03-14
RotatingLabelAxis domainAxis = new RotatingLabelAxis();

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
java.util.Date date = null;
try {
    date = sdf.parse("30.06.2011");  //Would like this to be the first date in plot instead.
} catch (ParseException e) {
    e.printStackTrace();
}

domainAxis.setMinimumDate(date);

这似乎使第一个价值对价值到2011-07-01威奇是正确的。问题是我希望日期“2011-06-30”在上面的例子中设置从最低的日期在系列中代替。是否有一种方法可以实现以下操作之一:
*从CustomizerClass中获取序列中的最小日期。
*在sql查询中以正确的格式映射返回的计算出的mindate,这样我就可以在图形的“域轴最小值表达式”字段中正确地设置它?
非常感谢任何帮助。

共有1个答案

邬英武
2023-03-14

JFreeChart应该自动设置DomainAxis(DateAxis)上的最小值和最大值,除非您使用Setautorange(false)禁用此功能。如果自动范围不能满足您的需要,您可以使用setminumumdate()/setmaximumdate()方法来调整这个范围(正如您在示例代码中所做的那样)。

您确实为JFreeChart的数据集提供了值,因此在没有JFreeChart的情况下查找最小日期应该是可能的。但是,您可以询问实际使用的数据集(我假设是TimeseriesCollection),例如:

XYPlot xyPlot = chart.getXYPlot();
XYDataset dataset = (XYDataset)xyPlot.getDataset();
double lowerBound = dataset.getXValue(0, 0);
double lowerBound = getDomainLowerBound(false);
java.util.Date lowerDate = new java.util.Date((long)lowerBound);
domainAxis.setMinimumDate(lowerDate);

请注意,在默认情况下,该轴还有一个大于零边距。使用DomainAxis.SetLowerMargin(0.0)消除这种情况。上边距类似。

 类似资料:
  • 我有一个折线图,我试图设置一个固定的最大值和最小值。我已经尝试了SO上的其他建议,但仍然不起作用。我的图表根据输入的数据不断重新设置最大值和最小值。 以下是我传递给折线图的当前选项: 我也尝试了这些设置: 知道我做错了什么吗? 谢谢!

  • 如果输入的文本与我的模式不匹配: 如果在输入的文本中找到\n字符,那么文本将不会被验证,但我想添加最小和最大长度到所有整个字符串。我希望如果文本不匹配的模式和字符串长度低于3和超过10,那么它将不会被验证,我知道下面的模式是不正确的,但至少我试图这样修改它: 对于示例: 有什么更正或建议吗?

  • 在Chart.js v2中,如何设置一个轴,使其始终显示数据集中最小值和最大值的刻度?该功能可能在配置选项中的某个地方,但它肯定不明显。我甚至尝试过使用插件将文本写入canvas对象,但是当我获得新数据时,可用API挂钩之外的一些东西会重新绘制位图。 下面是最新的配置,当用户导航到一个新的时间时,它由一个函数返回: 如果有人能指出配置中的任何缺陷,我很想听听他们有什么话要说......

  • 问题内容: 我正在尝试为Angular建立一个日托价格计算器。 公司专营权中的每个地点每天都有单独的价格。因此,我的想法是构建一个表单,首先选择一个允许您选择位置的表单,然后再选择一系列复选框。 我在从json文件中选择正确价格的复选框中遇到ng-true-value的问题。 更新: 添加了Plunkr:http : //plnkr.co/edit/MDmrqaH1VzLBzjd5eHgT?p=p

  • 我有一组带有时间戳的日志,需要按一些不存在的“虚拟会话”对这些日志进行分组。 如果上一个会话的最后一次登录和第一次登录之间有半个小时,则新的分组会话开始。 例如,我们有以下一组数据: 它应该分组在两个虚拟会话中。作为分组的结果,我可以在mongo aggregate$group中获得每个组的最小和最大时间,但是如何编写正确的表达式呢? 预期的答案大概是

  • 向最终用户提供一份货币清单。他们可以在任何时候选择他们感兴趣的一个。因此,需要根据所选货币更改中使用的区域设置。这似乎不是微不足道的。 是否有一种方法可以根据在运行时动态提供的货币代码来确定区域设置?