p:带有DateTime轴的图表

Dou*_*ior 3 charts jqplot primefaces

我正在尝试使用<p:chart>Primefaces 5.1 的组件创建折线图.

我需要X轴显示时间.像这样的东西:

在此输入图像描述

但只针对旧版本的文档.

我发现了几件事:

但是在5.1版本中没有这样的标签<p:lineChart>,甚至没有属性extender="".

我根据展示创建了我的图表:

但这个例子并没有多大帮助,因为它只适用于日期.并且复杂化为String.我需要时间.

我想知道是否有人已经在较新版本的Primefaces中创建了类似的东西.

编辑:

再搜索一下,我找到了这个主题:

我使用了它提到的例子,我可以使它工作.

我可以看到,当它是DateAxis时需要设置axis.setMax().最后看起来像这样:

在此输入图像描述

它按我的需要工作,但有两件事我不明白:

第一:需要设置的原因axis.setMax().

第二:这个模式用的是axis.setTickFormat("%H:%#M:%S")什么?

Dou*_*ior 13

好吧,我想现在我找到了一个可以接受的解决方案

图表的最初问题是axis.setMax().

而使用的模式axis.setTickFormat是:

该模型:

Code    Result                  Description
            == Years ==
%Y      2008                Four-digit year
%y      08                  Two-digit year
            == Months ==
%m      09                  Two-digit month
%#m     9                   One or two-digit month
%B      September           Full month name
%b      Sep                 Abbreviated month name
            == Days ==
%d      05                  Two-digit day of month
%#d     5                   One or two-digit day of month
%e      5                   One or two-digit day of month
%A      Sunday              Full name of the day of the week
%a      Sun                 Abbreviated name of the day of the week
%w      0                   Number of the day of the week (0 = Sunday, 6 = Saturday)
%o      th                  The ordinal suffix string following the day of the month
            == Hours ==
%H      23                  Hours in 24-hour format (two digits)
%#H     3                   Hours in 24-hour integer format (one or two digits)
%I      11                  Hours in 12-hour format (two digits)
%#I     3                   Hours in 12-hour integer format (one or two digits)
%p      PM                  AM or PM
            == Minutes ==
%M      09                  Minutes (two digits)
%#M     9                   Minutes (one or two digits)
            == Seconds ==
%S      02                  Seconds (two digits)
%#S     2                   Seconds (one or two digits)
%s      1206567625723       Unix timestamp (Seconds past 1970-01-01 00:00:00)
            == Milliseconds ==
%N      008                 Milliseconds (three digits)
%#N     8                   Milliseconds (one to three digits)
            == Timezone ==
%O      360                 difference in minutes between local time and GMT
%Z      Mountain Standard Time  Name of timezone as reported by browser
%G      -06:00              Hours and minutes between GMT
            == Shortcuts ==
%F      2008-03-26          %Y-%m-%d
%T      05:06:30            %H:%M:%S
%X      05:06:30            %H:%M:%S
%x      03/26/08            %m/%d/%y
%D      03/26/08            %m/%d/%y
%#c     Wed Mar 26 15:31:00 2008  %a %b %e %H:%M:%S %Y
%v      3-Sep-2008          %e-%b-%Y
%R      15:31               %H:%M
%r      3:31:00 PM          %I:%M:%S %p
            == Characters ==
%n      \n                  Newline
%t      \t                  Tab
%%      %                   Percent Symbol
Run Code Online (Sandbox Code Playgroud)

图表:

private void createDateModel() {
    dateModel = new LineChartModel();
    LineChartSeries series1 = new LineChartSeries();
    series1.setLabel("Series 1");
    series1.set("2014-01-01 00:10:50", 51);
    series1.set("2014-01-01 00:10:51", 22);
    series1.set("2014-01-01 00:10:52", 65);
    series1.set("2014-01-01 00:10:53", 35);
    dateModel.addSeries(series1);
    dateModel.getAxis(AxisType.Y).setLabel("Values");
    DateAxis axis = new DateAxis("Dates");
    axis.setTickAngle(-50);
    axis.setMax("2014-01-01 00:10:56");
    axis.setTickFormat("%H:%#M:%S");
    dateModel.getAxes().put(AxisType.X, axis);
}
Run Code Online (Sandbox Code Playgroud)