2016-07-19 4 views
1

Я работаю над моделью диаграммы PrimeFaces, и теперь, когда я нахожусь на нервах, я просто не могу понять, как ее значения в серии значений параметров. Каким ожидаемым результатом должно быть то, что One Open скажем, abc и один замкнутый для xyz, но то, что оно показывает одно открытое и одно замкнутое для xyz, ABC игнорируется. Если изменить положениеp: Chart Chart's ChartSeries не синхронизирован

barModel.addSeries(close); barModel.addSeries(open);

в

barModel.addSeries(open); barModel.addSeries(close);

Затем он показывает один открытый и один закрытый только азбука, не АБВ.

вот мой getBarModel() первый,

public BarChartModel getBarModel() { 

barModel=new BarChartModel(); 

    ChartSeries open = new ChartSeries(); 
    open.setLabel("OPEN"); 
    ChartSeries close = new ChartSeries(); 
    close.setLabel("Close"); 
open.set("abc", 1); 
    close.set("xyz", 1); 

    barModel.addSeries(close); 
    barModel.addSeries(open); 





     barModel.setMouseoverHighlight(false); 
     barModel.setShowPointLabels(false); 
     barModel.setTitle("Incident_application"); 
     barModel.setLegendPosition("ne"); 
     barModel.setShowDatatip(false); 
     barModel.setShowPointLabels(true); 
     barModel.setExtender("chartExtender"); 
     barModel.setSeriesColors("A2CC39,1B75BA"); 
     Axis xAxis = barModel.getAxis(AxisType.X); 
     xAxis.setLabel("Applications"); 
     barModel.setAnimate(true); 
     Axis yAxis = barModel.getAxis(AxisType.Y); 
     yAxis.setLabel("No. of Incident"); 
     yAxis.setMin(0); 
     yAxis.setMax(20); 
     yAxis.setTickInterval("10"); 

     return barModel; 
} 

и здесь XHTML

<h:outputScript library="primefaces" name="jquery/jquery.js" target="head" /> 
<h:outputScript library="primefaces" name="jquery/jquery-plugins.js" target="head" /> 

<style type="text/css"> 

table.jqplot-table-legend { 
border: none; 
font-size: x-large; 
} 
div.jqplot-table-legend-swatch 
{ 
width: 2vw; 
height: 2vh; 
} 
div.jqplot-gridData{ 
display:none; 
} 
div.jqplot-xaxis-tick{ 
font-weight:bold !important; 
} 
.jqplot-axis.jqplot-xaxis{ 
font-weight:bold; 
} 
.jqplot-point-label { 
font-size: 300%; 
color: black; 
font-weight: bold; 
} 
.jqplot-target{ 
color:black !important; 
} 

</style>  
<script> 

function chartExtender() {   

this.cfg.grid = {    
background: 'transparent', 
gridLineColor: '#303030', 
drawBorder: false, 
}; 


} 
</script> 
<h:form id="barChart"> 


<p:chart id="bar" type="bar" model="#{incidentBarChartController.barModel}" /> 


<p:poll interval="10" global="false" update="barChart"/> 

</h:form> 

</h:body> 

снимки ожидаемых и фактических результатов добавляются ниже.

Expected Result

Actual Result

Редактировать После добавления

open.set("abc", 1); 
     open.set("xyz",0); 
     close.set("xyz", 1); 
     close.set("abc", 0); 

Я все еще получаю странные результаты, т.е. 1 открытых и 1 закрыты для А и 0 открытых и 0 закрытых для А.

+0

Вам нужно дать каждому набору/ряду значение для каждой клавиши. Так же добавьте 'open.set (« xyz », 0); close.set (« abc », 0);' (возможно, «null» работает). Или, может быть, это нужно настроить на уровне jqplot через расширитель – Kukeltje

+0

Это будет слишком сложно из-за динамических данных. – Learner

+0

Почему? Так или иначе «упорядочен» ключ? Или это рецепт? Сочетание клавиш в одном наборе в правильном порядке является единственным «вызовом». И затем добавление цикла, хотя этот набор и добавление недостающих в других наборах не должно быть сложным. PF или jqPlot не могут решить это для вас. Они не могут знать, какой из двух наборов содержит правильный порядок. Предположим, что набор 1 начинается с «a $ #», а set 2 начинается с «a # $», который должен быть первым? Упорядочено в соответствии с «String». Но что, если для вас «xyz» должно появиться до «abc»? – Kukeltje

ответ

1

Единственное решение состоит в том, что вы как разработчик убедитесь, что все серии содержат все ключи и заполняют ключи, которых у вас нет, и убедитесь, что все клавиши всех серий находятся в одном порядке.

Причина в том, что только вы знаете реальный заказ (поэтому в серии используется LinkedHashMap). jQplot или PrimeFaces не могут этого знать. Если, например, первая серия пропускает ключ, и эта серия используется как «первичная» для перебора, где находится недостающий ключ. И если, например, в позиции 6 оба имеют ключ, который не находится в другом наборе, который нужно взять первым? JqPlot или PrimeFaces не могут знать. Все причины, по которым вы, как разработчик, должны быть уверены, что он явственен, помещая все ключи во все серии.

+0

Ну точно, это должен быть единственный случай. Я попробую и вернусь. – Learner

 Смежные вопросы

  • Нет связанных вопросов^_^