2014-09-29 4 views
0

У меня есть карта флота с 5 сериями данных. Каждая серия - один год с каждым разделом на месяцы. Y-ось - это стоимость и X-ось месяцев. Иногда в данных для определенного месяца (ов) внутри любого из рядов есть сообщение пользователя. То, что я хотел бы сделать, это показать точки на любой конкретной серии, но только в том случае, если сообщение пользователя не равно null. Например, если в июньском 2012 году пользовательское сообщение покажет точку в этом месяце только в этом году. Возможно ли это, так как на данный момент я могу включить или выключить сюжетные точки для каждой полной серии, т. Е. 12 сюжетных точек.графический график точек за выбранные несколько серий

+0

'flot' не имеет ни на параметры точки. Вам придется фильтровать ваши данные и удалять очки, которые не соответствуют вашим критериям. – Mark

+0

Но мне нужны точки, построенные за каждый месяц года. –

+0

Я не понимаю, я думал, что вы хотите * только те, у кого есть сообщения пользователя * построены? – Mark

ответ

1

Разделите свои данные на две отдельные серии.

Первый - это все данные только с показанными линиями.

Вторая имеет только те точки с «userMsg» и имеет только точки, показывающие.

Установите цвет двух серий одного цвета.

var myData = [{point: [1,Math.random() * 100], userMsg: "One"}, 
 
       {point: [2,Math.random() * 100]}, 
 
       {point: [3,Math.random() * 100], userMsg: "Three"}, 
 
       {point: [4,Math.random() * 100], userMsg: "Four"}, 
 
       {point: [5,Math.random() * 100]}]; 
 

 
var series1 = {data: $.map(myData, function(i){return [i.point];}), 
 
       points: {show: false}, 
 
       lines: {show: true}, 
 
       color: 'rgb(255, 100, 123)'}; 
 

 
var series2 = {data: $.map(myData, function(i){if (i.userMsg) return [i.point];}), 
 
       points: {show: true, radius: 8}, 
 
       lines: {show: false}, 
 
       color: 'rgb(255, 100, 123)'}; 
 

 
somePlot = $.plot($("#placeholder"), [ series1, series2 ], {}); 
 
       
 
      
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<script src="http://www.flotcharts.org/flot/jquery.flot.js"></script> 
 

 
<div id="placeholder" style="width:300px; height:300px"></div>

+0

Спасибо за ответ Марк, это получилось очень хорошо, так много спасибо за то, что нашли время, чтобы собрать это решение. Теперь появилась новая проблема, заключающаяся в том, что метки для пользовательских сообщений не функционируют, как я бы хотел. Поэтому я отключил показ ярлыков для пользовательских сообщений, но отключение соответствующих данных линии приводит к тому, что сообщение не отображается при зависании –

+0

. Поэтому я отключил показ ярлыков для пользовательских сообщений, но выключение соответствующих данных линии путем скрытия метки приводит к тому, что сообщение не показать на hover. Я подозреваю, что это связано с тем, что всплывающая подсказка привязана к данным линии, которая отображается с использованием года (year = item.series.label). Любые идеи получили высокую оценку. –

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