6

Недавно я стал отцом для мальчиков-близнецов. Естественно, есть много взвешивания и измерения, и мы записываем эти цифры в электронную таблицу. Я использую OpenOffice.org Calc (но я открыт для решений для Microsoft Excel/GoogleDocs/AnyOtherSpreadsheet), и я хочу создать визуальную интерпретацию их роста.

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

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

2: есть три разных измерения. Вес в граммах, рост в сантиметрах и окружность головы в сантиметрах. Для каждой даты есть измерение, вес всегда измеряется. Но высота и окружность головы измеряются только от случая к случаю. И как уже упоминалось, они близнецы. Итак, шесть разных потоков данных.

Есть ли какие-либо предложения относительно того, как я могу представить все данные в одной диаграмме, чтобы она выглядела круто, но также была легкой для понимания?

3: Пример данных:

DATE          | 13.oct | 15.oct | 22.oct | 24.oct | 10.nov | 16.dec | 11.jan
Tinus weight  | 2360 g | 2165 g | 2250 g | 2305 g | 2930 g | 4295 g | 5170 g
Adiran weight | 2340 g | 2185 g | 2270 g | 2305 g | 3055 g | 4555 g | 5380 g
Tinus height  | 45 cm  |        | 45 cm  | 48 cm  |        | 55 cm  | 57 cm
Adrian height | 44 cm  |        | 44 cm  | 48 cm  |        | 55 cm  | 58 cm
Tinus head    | 33 cm  |        | 33 cm  | 34 cm  |        | 38 cm  | 38 cm
Adrian head   | 33 cm  |        | 33 cm  | 34 cm  |        | 38 cm  | 39 cm

5 ответов5

4

Вот мой совет, чтобы делать то, что вы хотите в Excel:

  • Измените все даты на формат, который распознает Excel, например "13 октября 2009 года". Обязательно укажите год, чтобы он не предполагал, что это все 2010 год.

  • Удалите единицы измерения ("g" и "cm") из ячеек данных, чтобы Excel мог рассматривать их как числа. Либо поместите единицы измерения в метки для каждого потока данных, либо поместите их в метки оси Y (подробнее об этом позже).

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

  • Чтобы создать свой график:

    • Выберите Вставить / График.

    • Выберите тип диаграммы XY Scatter и подтип диаграммы с точками, соединенными изогнутыми линиями. Это позволит масштабировать расстояние между точками X по желаемым расстояниям и соединит точки сглаженной линией, чтобы было легче видеть тренды.

    • В разделе "Исходные данные" выберите вкладку "Серии", а затем добавьте ряд для каждого потока данных. Для каждой серии Имя должно указывать на вашу метку для строки (например, "Вес в тинусе"), X-значения должны указывать на строку дат, а Y-значения должны указывать на данные в этой строке (например, записанные значения веса тинуса). Когда вы выбираете строки данных, выбирайте весь путь до некоторого отдаленного столбца (например, столбца BZ), чтобы при вводе большего количества данных диаграмма могла расширяться.

    • Нажмите Готово. Теперь у вас должен быть график со всеми данными в нем, но с некоторыми визуальными недостатками.

  • График должен иметь весовые линии, выглядящие хорошо, но все данные о росте и высоте, охватывающие дно, потому что числа см намного ниже, чем числа грамм. Чтобы исправить это, щелкните правой кнопкой мыши по каждой из нижних строк данных по очереди, выберите "Форматировать ряд данных", выберите вкладку "Ось" и выберите "Вторичная ось". Теперь у вас будет дополнительная ось Y справа для см, и линии см будут масштабироваться до него.

  • Щелкните правой кнопкой мыши по каждой из шести линий данных, затем по очереди выберите "Форматировать ряд данных", перейдите на вкладку "Шаблоны" и поиграйте с цветом, стилем и весом линий и точек, пока все они не будут выглядеть красиво. Например, вы можете захотеть, чтобы Тинус использовал пунктирные линии и квадраты для всех своих линий, чтобы Адриан использовал пунктирные линии и круги для всех своих линий, и чтобы вес, рост и линии головы имели свой собственный цвет.

  • Щелкните правой кнопкой мыши где-нибудь в пустом месте вокруг диаграммы, выберите "Параметры диаграммы" и перейдите на вкладку "Заголовки". Для оси значений (Y) укажите «Вес (г)». Для оси второго значения (Y) укажите «Высота и окружность головы (см)».

  • Теперь у вас должен быть крутой, читаемый график.

2

Полагаю, твои мальчики уже в школе. Но если вы все еще регистрируете их рост (или для других подобных проблем), у меня есть неплохое решение. Вот пример диаграммы, которую я сделал на основе вашего описания и примеров данных.

В этом примере диаграммы две линии показывают вес мальчиков. А столбцы показывают высоту и длину головы. Вы также можете увидеть соотношение головы к телу. Дата на оси X находится в правильном масштабе, даже если вы не выполняете измерение для регулярных интервалов. Если навести указатель мыши на график, вы также можете просмотреть информацию о точках измерения.

Как вы могли заметить, в Excel есть некоторый код, потому что я создал этот пример диаграммы с помощью надстройки Funfun Excel. Эта надстройка позволяет вам использовать JavaScript непосредственно в Excel, чтобы вы могли использовать библиотеки, такие как HighCharts.js или Chart.js, чтобы легко создавать диаграммы такого типа.

Что касается ваших данных, вы можете просто сохранить их, как в электронной таблице. Но вам нужно немного изменить формат вашей даты. Лучше сделать их в формате дд / мм / гггг или дд-мм-гггг, потому что я использую приведенный ниже код для анализа даты в электронной таблице в формате datetime в JavaScript.

for(var i=1;i<data[0].length;i++){
    date.push(Date.UTC(parseInt(data[0][i].split('.')[2]),parseInt(data[0][i].split('.')[1])-1,parseInt(data[0][i].split('.')[0])))
  }

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

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

Если вы удовлетворены результатом, которого вы достигли в онлайн-редакторе, вы можете легко загрузить результат в Excel, используя указанный выше URL. Но, конечно, во-первых, вам нужно добавить надстройку Funfun в ваш Excel, используя Insert - надстройки Office. Вот несколько скриншотов, показывающих, как вы загружаете пример в Excel.

Я надеюсь, что это все еще будет полезно для вас :)

Раскрытие информации: я разработчик Funfun

1

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

В Excel:

Диаграмма> Параметры> Оси> Главная ось (X)> Шкала времени.

1

Ответ Тока дал мне правильные термины для Google (в частности, « OpenOffice Time Scale »), а один из ответов дал мне ответ для OpenOffice.

Решением для OpenOffice было довольно просто выбрать xy-график вместо линейного графика.

0

Для тех, кто ищет решение этой проблемы в Google Spreadsheet (как я):

Вставить -> График ... -> Графики -> Тренд -> Временная линия (вторая вниз)

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