#jqplot #breakpoints
#jqplot #точки останова
Вопрос:
Я пытаюсь реализовать горизонтальную гистограмму, используя библиотеку jqplot. В моем случае некоторые столбцы графика могут показывать чрезвычайный всплеск, поэтому, например, если 3 столбца моего графика имеют значение данных 150 (максимум), столбик с шипами может иметь значение данных 1000.
Чтобы удовлетворить это требование, я просмотрел документацию jqplot и обнаружил, что у них есть нечто, называемое «точкой останова», для разрыва осей в каком-то определенном месте. http://www.jqplot.com/docs/files/jqplot-linearAxisRenderer-js.html #$.jqplot.LinearAxisRenderer.Точки останова
Теперь предположим, что мои данные для серии выглядят следующим образом : [100, 150, 50, 250, 1200, 100]
Как в приведенном выше случае я могу убедиться, что jqplot вставляет точку останова после 250 и продолжает отмечать оси на 1200?
[Отредактировано] Итак, после использования приведенного ниже кода я могу заставить точки останова работать: chart.axes.xaxis.breakPoints=[10,100]; chart.replot(); (я также просмотрел исходный код jqplot и выяснил, что для работы точек останова нам нужно вручную установить тики,что я и сделал)
Но моя первоначальная проблема все еще на свободе! Предположим, что мой ряд выглядит как [100, 200, 300, 20000] В этом случае, даже если я использую точки останова, мои 3 бара, которые имеют значительно меньший вес, кажутся очень маленькими по сравнению с 4-м баром (вес 20000), что делает график нечитаемым. Может кто-нибудь, пожалуйста, предложить выход из этого?
Комментарии:
1. пожалуйста, отредактируйте, чтобы включить код, который вы пробовали до сих пор
Ответ №1:
«Как реализовать точки останова»: повторный анализ данных, как упоминалось выше, не является правильным способом использования точек останова:
chart.axes.xaxis.breakPoints=[10,100]; chart.replot();
Взглянув на этот фрагмент кода, я решил проблему с точкой останова: имея все значения данных моей гистограммы <200, за исключением одного значения столбца> 850, я хотел бы установить точку останова между 250 и 850.
И вот как это можно сделать:
axes: {
xaxis: {
renderer: $.jqplot.CategoryAxisRenderer,
ticks: ticks
},
yaxis: {
ticks: [0,50,100,150,200,250,275,825,850,900,950],
tickOptions: {
formatString: '%.0d'
},
renderer: $.jqplot.LinearAxisRenderer,
rendererOptions: {
breakPoints: [275,825],
breakTickLabel: "amp;asymp;",
forceTickAt0: true
}
}
Важно:
- Используйте LinearAxisRenderer .
- добавьте ваши тики вручную в массив.
- установите точку останова с помощью параметров визуализации.
- Массив с отметками ДОЛЖЕН СОДЕРЖАТЬ значения, которые вы хотите установить в качестве точек останова в rendererOptions.
С уважением, Маттиас
PS: У меня также есть изображение графика, но вы не разрешаете мне публиковать изображения, пока я не получу 10 репутации.