2014-07-09 5 views
1

На моей странице у меня есть диаграммы, созданные с использованием Jquery Flot plugin, что отлично работает.Преобразование диаграммы JQuery в другой тип диаграммы

Но будет интересно, если мой клиент может просто щелкнуть опцию, и круговая диаграмма преобразуется в гистограмму.

Каков наилучший способ сделать это?

Это проект .Net с использованием MVC, поэтому я подумал, что если я сделаю 2 отдельных Partial Views, каждый из них с типом диаграммы (круговой диаграммой и гистограммой), может работать нормально, но, возможно, кто-то пропустит что-то например, это упростило, возможно, функцию преобразования круговой диаграммы в другой тип (в моем случае круговую диаграмму для гистограммы).

+0

@ Daniel 2 Частичные виды, и я загружаю каждый в зависимости от того, чего хочет пользователь. Я думаю, что не нужно публиковать код, потому что это просто функция щелчка, если пользователь нажимает на просмотр гистограммы, я загружаю конкретное частичное представление. –

+0

Есть только несколько вариантов конфигурации, которые нужно изменить, чтобы перейти от пирога к гистограмме. Установите обработчик кликов, который применяет эти изменения и перерисовывает диаграмму. (Но обратите внимание, что гистограммы и круговые диаграммы не одинаково подходят для каждого типа данных) – TPete

ответ

2

Вы можете сделать это прямо в javascript; просто повторно инициализировать таблицу с нужными параметрами:

if (doPie){ 
    $.plot($('#placeholder'), data, { 
     series: { 
      pie: { 
       show: true 
      } 
     } 
    }); 
} else if (doBar) { 
    $.plot($('#placeholder'), [data], { 
     series: { 
      bars: { 
       show: true 
      } 
     } 
    }); 
} else if (doLine) { 
    $.plot($('#placeholder'), [data], { 
     series: { 
      lines: { 
       show: true 
      } 
     } 
    }); 
} 

Обратите внимание, что, как вы передаете данные Литт отличается от баров/линий и круговой диаграммы. Строка/диаграмма за исключением нескольких рядов, поэтому сделайте массив, [data]. Круговая диаграмма исключает только одну серию, data.

Адрес fiddle.

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