kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 jvanderh
jvanderh
Вопрос

Как использовать даты на оси X с помощью API диаграммы Google?

Есть ли способ построить график с помощью Google chart API так, чтобы значения по оси X были днями в месяце?

У меня есть точки данных, которые не предоставляются с одинаковой частотой. Например:

Date - Value
1/1/2009 - 100
1/5/2009 - 150
1/6/2009 - 165
1/13/2009 - 200
1/20/2009 - 350
1/30/2009 - 500

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

Также приветствуются другие бесплатные решения, аналогичные Google chart, или бесплатная библиотека, которую можно использовать в ASP.NET.

37 2009-06-19T21:19:03+00:00 5
 Smi
Smi
Редактировал вопрос 6-го июня 2012 в 7:28
Программирование
vb.net
asp.net
javascript
google-visualization
Решение / Ответ
 defines
defines
19-го июня 2009 в 9:44
2009-06-19T21:44:09+00:00
Дополнительно
Источник
Редактировать
#9181231

UPDATE Теперь это поддерживается непосредственно в Chart API с помощью функции расширенных графиков "аннотированный график" - https://developers.google.com/chart/interactive/docs/gallery/annotationchart.

Я сделал это на своем ReHash Database Statistics графике (хотя даты оказались равномерно разнесенными, так что это не совсем демонстрирует, что он это делает).

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

Теперь пройдитесь по данным. Для каждой даты нам нужен перцентиль в общем периоде, который эта дата составляет от начала (т.е. самая ранняя дата - 0, самая поздняя - 100). Для каждой даты сначала нужно вычислить расстояние текущей даты от самой ранней даты в наборе данных. По сути, "как далеко мы находимся от начала". Итак, вычтите самую раннюю дату из настоящей даты. Затем, чтобы найти процентиль, мы делим расстояние текущей даты на общий период времени, а затем умножаем на 100 и усекаем или округляем любую десятичную дробь, чтобы получить интегральную x-координату.

И это так просто! Значения x будут варьироваться от 0 (левая сторона графика) до 100 (правая сторона), и каждая точка данных будет находиться на расстоянии от начала отсчета, соответствующем ее истинному временному расстоянию.

Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать! При желании я могу выложить pesudocode или PHP.

 mickmackusa
mickmackusa
Редактировал ответ 25-го апреля 2018 в 10:40
20
0
 egor83
egor83
30-го октября 2011 в 7:36
2011-10-30T19:36:02+00:00
Дополнительно
Источник
Редактировать
#9181234

У меня была такая же проблема, нашли разброса на Google картах, это именно то, что нужно.

Здесь'ы код, я в конечном итоге с (взял их в качестве отправной точки):

function drawVisualization() {
    // Create and populate the data table.
    var data = new google.visualization.DataTable();
    data.addColumn('date', 'Date');
    data.addColumn('number', 'Quantity');
    data.addRow([new Date(2011, 0, 1), 10])
    data.addRow([new Date(2011, 1, 1), 15])
    data.addRow([new Date(2011, 3, 1), 40])
    data.addRow([new Date(2011, 6, 1), 50])

    // Create and draw the visualization.
    var chart = new google.visualization.ScatterChart(
        document.getElementById('visualization'));
    chart.draw(data, {title: 'Test',
                      width: 600, height: 400,
                      vAxis: {title: "cr", titleTextStyle: {color: "green"}},
                      hAxis: {title: "time", titleTextStyle: {color: "green"}},
                      lineWidth: 1}
              );
}

Обратите внимание, что они, кажется, считать месяцы от 0, т. е. январь-0, февраль-1, ..., Декабрь-11.

11
0
Brian Adkins
Brian Adkins
12-го апреля 2010 в 8:03
2010-04-12T20:03:57+00:00
Дополнительно
Источник
Редактировать
#9181232

Похоже, что теперь это можно сделать с помощью расширенных графиков:

http://code.google.com/apis/visualization/documentation/gallery/annotatedtimeline.html

Annotated Timeline  |  Charts  |  Google Developers
code.google.com
8
0
David Snabel-Caunt
David Snabel-Caunt
19-го июня 2009 в 9:32
2009-06-19T21:32:15+00:00
Дополнительно
Источник
Редактировать
#9181230

Это можно сделать с помощью диаграмм Google довольно легко, но ваше приложение должно рассчитать метки

Вам нужен параметр chxl chart x label. В следующем примере ось y помечена числами с шагом 50, а нижняя часть - датами

chxl=0:|0|50|100|150|200|250|300|350|400|450|500|1:|16/01/2009|26/01/2009|6/02/2009
1
0
 Mawg
Mawg
23-го октября 2010 в 9:59
2010-10-23T09:59:42+00:00
Дополнительно
Источник
Редактировать
#9181233

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

  1. выяснить, сколько символов в каждой даты, в зависимости от формата (пн/вт, в понедельник/вторник, 1 января/1 февраля, 1 января, 29 февраля, 14/2/2010 ..и т. д.), а затем посчитать, сколько наклеек можно разместить на диаграмме ширина (которая может усугубится, связанных чар ширина в пикселях (легче для фиксированных шрифтов), или просто несколько пробных & ошибок).

Конечно, ваши ярлыки может соответствовать любые данные.

  1. Использование нескольких оси X и месте даты по вертикали.
0
0
Похожие сообщества 32
JavaScript Jobs — чат
JavaScript Jobs — чат
26 405 пользователей
JavaScript Jobs — чат для поиска работы и людей Правила оформления: @telegram-ru/r1WQe5F1m" rel="nofollow noopener noreferrer" class="text-blue hover:text-black link" target="_blank">https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru
Открыть telegram
JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
9 515 пользователей
Помогаем друг другу разбираться с JS Правила: @js_noobs_ru/rules" rel="nofollow noopener noreferrer" class="text-blue hover:text-black link" target="_blank">https://teletype.in/@js_noobs_ru/rules Другие полезные чаты — https://github.com/goq/telegram-list или https://rudevs.network/ByKT2JwWQ
Открыть telegram
JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
7 714 пользователей
Рекомендуем сразу отключить уведомления Правила: https://git.io/JycBd См. также: @js_noobs_ru, @nodejs_ru, @ts_cool, @react_js, @electron_cool Вакансии и поиск работы: @javascript_jobs
Открыть telegram
DotNetRuChat
DotNetRuChat
6 630 пользователей
Чат русскоязычного .NET сообщества http://dotnet.ru/ Правила: https://t.me/DotNetRuChat/704399 Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia, @DotNetRuJobs, @uwp_ru Флуд в @dotnettalks
Открыть telegram
Чат | Google Таблицы и скрипты
Чат | Google Таблицы и скрипты
4 404 пользователей
канал: @google_sheets оглавление: @google_sheet_toc заказ работы: @namokonov правила чата: t.me/google_spreadsheets_chat/242967
Открыть telegram
JavaScript.Ninja
JavaScript.Ninja
3 822 пользователей
Правила поведения проекта https://telegra.ph/Kodeks-povedeniya-proekta-JavaScriptNinja-12-15
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Ilya Smirnov
Зарегистрирован 1 день назад
2
Денис Васьков
Зарегистрирован 2 дня назад
3
Dima Patrushev
Зарегистрирован 5 дней назад
4
sirojidddin otaboyev
Зарегистрирован 1 неделю назад
5
Елена Гайдамамакинат
Зарегистрирован 1 неделю назад
JA
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией