- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在 Jfreechart 的甘特图顶部添加一个十字线,该十字线随鼠标移动,类似于提到的 here .
按照该示例,我创建了自己的:
private Crosshair xCrosshair;
private Crosshair yCrosshair;
public void createChartPanel(JFreeChart chart){
chartPanel = new ChartPanel(chart);
chartPanel.setInitialDelay(0); // make the tooltip appear quicker
// Mouse wheel listener for the zoom in out feature
chartPanel.addMouseWheelListener(this);
// Mouse movement listener for the cross hair feature
chartPanel.addChartMouseListener(this);
CrosshairOverlay crosshairOverlay = new CrosshairOverlay();
this.xCrosshair = new Crosshair(Double.NaN, Color.GRAY, new BasicStroke(0f));
this.xCrosshair.setLabelVisible(true);
this.yCrosshair = new Crosshair(Double.NaN, Color.GRAY, new BasicStroke(0f));
this.yCrosshair.setLabelVisible(true);
crosshairOverlay.addDomainCrosshair(xCrosshair);
crosshairOverlay.addRangeCrosshair(yCrosshair);
chartPanel.addOverlay(crosshairOverlay);
}
// add the custom renderer and modify x axis
public void createCategoryPlot(JFreeChart chart){
plot = chart.getCategoryPlot();
ganttRenderer = new Renderer();
plot.setRenderer(ganttRenderer);
/* Modify the x axis */
DecimalFormat format = (DecimalFormat) NumberFormat.getNumberInstance(Locale.ENGLISH);
format.applyPattern("#");
xAxis = new NumberAxis();
xAxis.setNumberFormatOverride(format);
xAxis.setLabel("Cycles");
CategoryAxis axis = plot.getDomainAxis();
axis.setLowerMargin(0.05);
axis.setCategoryMargin(0.55);
axis.setUpperMargin(0.05); // modify the position of each task axis
plot.setRangeAxis(xAxis);
// add change listener to for change in the axis range
plot.getRangeAxis().addChangeListener(this);
initRange = xAxis.getRange();
chartPanel.getChart().removeLegend();
}
public void chartMouseMoved(ChartMouseEvent event) {
int mouseX = event.getTrigger().getX();
int mouseY = event.getTrigger().getY();
Rectangle2D dataArea = this.chartPanel.getScreenDataArea();
JFreeChart chart = event.getChart();
double x = xAxis.java2DToValue(event.getTrigger().getX(), dataArea, RectangleEdge.BOTTOM);
// double y = DatasetUtilities.findYValue(plot.getDataset(), 0, x);
this.xCrosshair.setValue(x);
this.yCrosshair.setLabelGenerator(new CrosshairLabelGenerator(){
@Override
public String generateLabel(Crosshair arg0) {
return "y value";
}
});
}
不幸的是,显示了此错误,这不允许我覆盖在类别图的顶部。
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: org.jfree.chart.plot.CategoryPlot cannot be cast to org.jfree.chart.plot.XYPlot
at org.jfree.chart.panel.CrosshairOverlay.paintOverlay(CrosshairOverlay.java:233)
at org.jfree.chart.ChartPanel.paintComponent(ChartPanel.java:1658)
关于如何解决这个问题有什么想法吗?
最佳答案
ChartFactory.createGanttChart()
实例化一个 CategoryPlot
,如图 here ,但 CrosshairOverlay
需要一个 XYPlot
。您可以使用绘图的现有十字准线实现和基于 DEFAULT_TOOL_TIP_FORMAT_STRING
的自定义工具提示格式获得类似的效果。见于IntervalCategoryToolTipGenerator
.
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setDomainCrosshairVisible(true);
plot.setRangeCrosshairVisible(true);
GanttRenderer r = (GanttRenderer) plot.getRenderer();
r.setBaseToolTipGenerator(new IntervalCategoryToolTipGenerator(
"{0}, {1}: {3} - {4}", DateFormat.getDateInstance()));
关于java - jfreechart:向甘特图添加十字线覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28362532/
我有一个 Pandas DataFrame,其中包含流量计开始测量流量的日期和站点退役的日期。我想生成一个以图形方式显示这些日期的图。这是我的 DataFrame 的示例: import pandas
我必须每天生成甘特图。我的想法是使用 R 的 DiagrammeR 包中包含的美人鱼 api。 我的数据将始终具有相同的结构,因此,我创建了一个非常原始的解析器,该解析器包含在可重现的示例中。 我面临
我不知道 Angular js,我正在使用这里的 Angular 甘特图https://github.com/angular-gantt/angular-gantt & 此图表显示日期但不显示日期(S
我正在尝试找出一种在 Highcharts Gantt 依赖路径上添加悬停工具提示的方法;但我不确定最好的方法,因为似乎没有 native 配置属性来与依赖路径和端点交互。 我从在渲染的 .highc
我一直在使用使用 javascript 的 DhtmlxGantt。我希望能够进行一些计算,例如里程碑、进度和天数。我想知道是否可以使用 DhtmlxGantt API java 而不是 javasc
我正在尝试构建一个甘特图,就像在这个 JSFiddle 示例中一样[ http://jsfiddle.net/2xkfm87e/11/ ](我现在已经使用下面的 jlbriggs 输入将这个 fidd
var tasks; d3.json("http://localhost:8080/result", function(error, data) { tasks = data data.f
我是 JFree 的新手。我想知道如何创建数据集,使特定作业的所有操作都具有相同的颜色(例如,O111、O122、O133、O144 具有相同的颜色,机器排列如图 2 所示)。 我尝试使用 TaskS
我想做一个循环,以便将所有数据放入我的图表中。但是,我不知道该怎么做。我试过一些东西,但没有用。我在循环行得到一个 Uncaught SyntaxError: $(".gantt").gantt({
我有 100% 的甘特图高度,但如果甘特图有很多信息,他会创建一个卷轴,或者如果有一些信息,他会创建一个包含信息和非常大空间的大正方形,直到正方形结束。任何想法,请帮助。我想要的是如果有很多信息不创建
我对 Javascript 比较陌生,并且一直在我的网站上使用 JSGantt.js 制作甘特图。 html 页面上所需的唯一代码如下所示: // here's all the html
我正在努力寻找有关如何执行此操作的任何真实文档,基本上我使用 jquery.gantt ( http://taitems.github.io/jQuery.Gantt/ ) 显示数据库中的数据,并且需
我正在寻找一个基于 JS 的资源规划组件,其中我在左侧有可用资源,在右侧有资源负载。 到目前为止,我只找到了一些甘特图实现,它们缺乏添加、移动和编辑功能。我想知道这样的组件是否存在。 最佳答案 我不知
我想在包含“建议播种窗口”和实际播种日期的甘特图上叠加降雨数据(列)。从数据集中,我可以分别创建两者,但不能在一个图表上创建。任何指针都非常感谢。 ## plot Gantt chart with s
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 3 年前。
我知道 Sharepoint 对甘特图有一些支持(任务的甘特 View )。我正在寻找的是提供高级任务关系的方法(FF:完成到完成,FS:完成到开始等)有没有办法提供它或者是否有免费的组件? 最佳答案
向 this example 中的 d3 甘特图添加水平网格线的最佳方式是什么? ?我最初想制作一个轴并使刻度标记为图表的长度(如 this example 中所示),但这会将它们直接放在图表矩形的中
我必须使用 jQuery 将类似甘特图 的工具集成到房间预订解决方案中。甘特图应该是非常互动的,而不是简单地显示数据。它应该响应拖放,它应该在左侧有一个 TreeView 来对任务进行分组,它应该有缩
我正在使用一个数据集,该数据集描述了与一系列公司的契约(Contract)期限。显然,所有契约(Contract)都有开始日期和(最短)期限。然而,某些契约(Contract)可能会延长。这是一个数据
我在 JavaScript 中使用 Highcharts 甘特图。 我想停用表格顶部的标题,这对我来说没有用。截图中的红色矩形: https://files.normanfeltz.fr/files/
我是一名优秀的程序员,十分优秀!