3

У меня есть данные в CSV-файле, как показано ниже, за исключением большего количества столбцов и строк

 Mean values   61           43
 Sample 1      0.009    0.059
 Sample 2      0.108    0.099
 Sample 3      0.043    0.038
 Sample 4      0.079    0.227

 Stdev         61           43
 Sample 1     0.00      0.00
 Sample 2     0.04      0.04
 Sample 3     0.01      0.01
 Sample 4     0.04      0.04

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

1 ответ1

1

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

Вот рабочий код, который я написал для вас:

https://www.funfun.io/1/#/edit/5a6b1cbbee0b8c3283c655ab

Я использовал онлайн-редактор со встроенной электронной таблицей для тестирования своего кода, он довольно прост в использовании. После того, как вы ввели свои данные в электронную таблицу, вы можете получить к ним доступ с помощью своего кода через файл JSON, это первый файл под настройками.

Как только данные станут доступны, вам нужно создать диаграмму, а для этого вам нужно выбрать библиотеку javascript. Есть много мощных, таких как Plotly.js или Highcharts. Я использовал Highcharts для этого примера.

Убедитесь, что ваши данные расположены в файле script.js . Так что вы можете правильно ввести свои данные в диаграммах. Я создаю локальные переменные в script.js который содержит данные из электронной таблицы, например:

var labels = []; // "samples 1" ...
var category = []; // "61" and "43"
var firstValues = [];// 61
var secondValues = [];//43
var categoryValues = [];// firstValues + secondValues

var firstErrors = [];// Stdev 61
var secondErrors = [];// Stdev 43
var errorValues = []; // firstErrors + secondError

Заполните series правильными данными благодаря локальным переменным.

 var series = [];
      // We enter the Sample and Error Values in the chart (series)
      for(var i = 0; i < category[0].length; i++) {
        series.push({
            name: category[0][i],
            type: 'column',
            color: Highcharts.getOptions().colors[i+7],
            data: categoryValues[i]
        });
        series.push({
            name: 'error',
            type: 'errorbar',
            data: errorValues[i],
           tooltip: {
            pointFormat: '(error range: {point.low}-{point.high} mm)<br/>'
        }
        });        
      }

И создайте диаграмму с series и другими дополнительными параметрами.

Highcharts.chart('container', {

    title: {
        text: 'custom error bars to multiple series'
    },

    xAxis: {
        categories: labels
    },

    yAxis: {
        allowDecimals: true,
        min: 0,
        max: 0.3
    },

    tooltip: {
      shared:true
    },

    series: series
});

Вы можете загрузить его в Excel, вставив URL-адрес в надстройку Funfun Excel. Вот как это выглядит с моим примером:

окончательный

Затем вы можете скачать его в формате JPEG, PNG, PDF, SVG или распечатать, если хотите.

Раскрытие: я разработчик Funfun.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .