Отображение только каждых <n> дат по оси X (или группировка по месяцам), чтобы уменьшить беспорядок по оси X

В настоящее время я немного изучаю Python, используя Jupyter Notebook и библиотеку matplotlib для создания некоторых графиков из данных JSON. Я смог создать диаграммы, и это здорово, но я не знаю, как убрать беспорядок на моей оси X. См. скриншот ниже. Существует значение для каждого дня, и в переданных данных есть сотни дней. Это создает очень загроможденную ось X, которую невозможно прочитать.

Код:

dates = [i['daily_sales_date'] for i in json_data]
values = [i['daily_sales'] for i in json_data]
print('sample date: ' + dates[0])
print('sample value: ' + str(values[0]))
df = pd.DataFrame({'dates':dates, 'values':values})
df['dates']  = [pd.to_datetime(i) for i in df['dates']]
plt.bar(dates, values)

Результат:

Отображение только каждых &lt;n&gt; дат по оси X (или группировка по месяцам), чтобы уменьшить беспорядок по оси X

Эта толстая черная полоса - все мои даты :). Я попытался просмотреть некоторые примеры, которые предположительно не загромождают даты по оси X, но я не заставил их работать. Я был бы счастлив либо показать только подмножество дат вдоль оси, либо даже просто показать названия месяцев. Лучшее, что я могу сделать, это заставить метки оси X вообще не отображаться: / Есть совет?

Отображение только каждых &lt;n&gt; дат по оси X (или группировка по месяцам), чтобы уменьшить беспорядок по оси X

Я попытался сделать следующее в соответствии с одним из предложений:

from matplotlib.dates import MonthLocator
register_matplotlib_converters()

Затем, чтобы создать график:

Отображение только каждых &lt;n&gt; дат по оси X (или группировка по месяцам), чтобы уменьшить беспорядок по оси X

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

[
    {
        "RowInsertDateTime": "2019-04-10T13:10:00.6",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4994.2,
        "daily_sales_date": "2019-04-10T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-09T23:00:01.213",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 8868.75,
        "daily_sales_date": "2019-04-09T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-08T23:00:02.093",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4618.55,
        "daily_sales_date": "2019-04-08T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-07T23:00:01.52",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5710.01,
        "daily_sales_date": "2019-04-07T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-06T23:00:01.42",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9674.46,
        "daily_sales_date": "2019-04-06T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-05T23:50:01.977",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9243.66,
        "daily_sales_date": "2019-04-05T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-04T23:50:01.5",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 8865.75,
        "daily_sales_date": "2019-04-04T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-03T23:00:01.003",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5530.14,
        "daily_sales_date": "2019-04-03T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-02T23:00:01.71",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4893.77,
        "daily_sales_date": "2019-04-02T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-01T23:00:01.61",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 3741.6,
        "daily_sales_date": "2019-04-01T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-31T23:00:00.893",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 8727.52,
        "daily_sales_date": "2019-03-31T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-30T23:00:01.263",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9572.48,
        "daily_sales_date": "2019-03-30T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-29T23:50:01.937",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 20003.71,
        "daily_sales_date": "2019-03-29T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-28T23:50:00.933",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 29890.54,
        "daily_sales_date": "2019-03-28T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-27T23:00:01.267",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 19669.24,
        "daily_sales_date": "2019-03-27T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-26T23:00:13.68",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 18655.44,
        "daily_sales_date": "2019-03-26T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-25T23:00:12.427",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4876.38,
        "daily_sales_date": "2019-03-25T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-24T23:00:16.313",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 8467.17,
        "daily_sales_date": "2019-03-24T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-23T23:00:23.517",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 12542.34,
        "daily_sales_date": "2019-03-23T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-22T23:50:14.363",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 12119.07,
        "daily_sales_date": "2019-03-22T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-21T23:50:12.527",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9403.31,
        "daily_sales_date": "2019-03-21T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-20T23:00:15.797",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5872.87,
        "daily_sales_date": "2019-03-20T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-19T23:10:09.547",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4634.91,
        "daily_sales_date": "2019-03-19T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-18T23:00:10.887",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5789.16,
        "daily_sales_date": "2019-03-18T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-17T23:00:07.93",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9743.17,
        "daily_sales_date": "2019-03-17T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-16T23:00:12.367",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 10729.08,
        "daily_sales_date": "2019-03-16T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-15T23:50:09.177",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9404.83,
        "daily_sales_date": "2019-03-15T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-14T23:50:11.423",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9029.93,
        "daily_sales_date": "2019-03-14T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-13T23:00:17.653",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4464.14,
        "daily_sales_date": "2019-03-13T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-12T23:00:14.063",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4711.15,
        "daily_sales_date": "2019-03-12T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-11T23:00:11.227",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 7090.3,
        "daily_sales_date": "2019-03-11T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-10T23:00:07.127",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 8083.23,
        "daily_sales_date": "2019-03-10T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-09T23:10:10.253",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 10253.7,
        "daily_sales_date": "2019-03-09T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-08T23:50:09.863",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 12339.06,
        "daily_sales_date": "2019-03-08T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-07T23:50:10.497",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 10200.52,
        "daily_sales_date": "2019-03-07T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-06T23:10:10.87",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 6694.55,
        "daily_sales_date": "2019-03-06T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-05T23:10:08.707",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5779.48,
        "daily_sales_date": "2019-03-05T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-04T23:00:09.39",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4954.72,
        "daily_sales_date": "2019-03-04T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-03T23:00:10.75",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 8473.28,
        "daily_sales_date": "2019-03-03T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-02T23:00:09.637",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 11327.68,
        "daily_sales_date": "2019-03-02T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-01T23:50:11.49",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 11075.8,
        "daily_sales_date": "2019-03-01T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-28T23:50:10.217",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9143.1,
        "daily_sales_date": "2019-02-28T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-27T23:00:09.44",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5523.66,
        "daily_sales_date": "2019-02-27T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-26T23:00:08.913",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5235.5,
        "daily_sales_date": "2019-02-26T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-25T23:00:19.74",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5379.84,
        "daily_sales_date": "2019-02-25T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-24T23:00:09.44",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 7194.78,
        "daily_sales_date": "2019-02-24T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-23T23:00:11.783",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9438.9,
        "daily_sales_date": "2019-02-23T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-22T23:50:07.167",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9989.46,
        "daily_sales_date": "2019-02-22T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-21T23:50:06.98",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 10120.73,
        "daily_sales_date": "2019-02-21T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-20T23:00:14.46",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5732.03,
        "daily_sales_date": "2019-02-20T00:00:00"
    }
]
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
2 745
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете показать только каждую n-ю дату, чтобы уменьшить беспорядок:

ticks = ax.get_xticks()
labels = ax.get_xticklabels()
n = len(ticks) // 10  # Show 10 ticks.
ax.set_xticks(ticks[::n])
ax.set_xticklabels(labels[::n])

Я бы сказал, что это самый элегантный и общий ответ (кроме того, ничего из вышеперечисленного не сработало для меня)

Gene Burinsky 07.01.2022 19:39

Используйте отметьте локатор:

from matplotlib.dates import MonthLocator

ax.xaxis.set_major_locator(MonthLocator())

Это создаст один тик на каждый месяц. Дополнительные параметры настройки см. в документы.

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

JamesMatson 10.04.2019 04:49

@JamesMatson Это немного странно. Было бы полезно, если бы вы предоставили точный образец ваших данных, чтобы мы могли лучше ответить на ваш вопрос.

gmds 10.04.2019 04:58

Я обновил вопрос с образцом данных. Я прошу прощения за то, что украл ваше время, чтобы посмотреть на это, как новичок с Python, Jupyter Notebooks и matplotlib, с вероятностью 99%, я делаю что-то ужасно глупое: /

JamesMatson 10.04.2019 05:15
Ответ принят как подходящий

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

df = pd.DataFrame({'dates':dates, 'values':values})
df['dates']  = pd.to_datetime(df['dates'])  # possibly format = "..."
plt.bar(df['dates'].values, df['values'].values)

# The complete example would be:

import pandas as pd
import matplotlib.pyplot as plt

json_data = [
    {
        "RowInsertDateTime": "2019-04-10T13:10:00.6",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4994.2,
        "daily_sales_date": "2019-04-10T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-09T23:00:01.213",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 8868.75,
        "daily_sales_date": "2019-04-09T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-08T23:00:02.093",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4618.55,
        "daily_sales_date": "2019-04-08T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-07T23:00:01.52",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5710.01,
        "daily_sales_date": "2019-04-07T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-06T23:00:01.42",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9674.46,
        "daily_sales_date": "2019-04-06T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-05T23:50:01.977",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9243.66,
        "daily_sales_date": "2019-04-05T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-04T23:50:01.5",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 8865.75,
        "daily_sales_date": "2019-04-04T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-03T23:00:01.003",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5530.14,
        "daily_sales_date": "2019-04-03T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-02T23:00:01.71",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4893.77,
        "daily_sales_date": "2019-04-02T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-04-01T23:00:01.61",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 3741.6,
        "daily_sales_date": "2019-04-01T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-31T23:00:00.893",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 8727.52,
        "daily_sales_date": "2019-03-31T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-30T23:00:01.263",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9572.48,
        "daily_sales_date": "2019-03-30T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-29T23:50:01.937",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 20003.71,
        "daily_sales_date": "2019-03-29T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-28T23:50:00.933",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 29890.54,
        "daily_sales_date": "2019-03-28T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-27T23:00:01.267",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 19669.24,
        "daily_sales_date": "2019-03-27T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-26T23:00:13.68",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 18655.44,
        "daily_sales_date": "2019-03-26T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-25T23:00:12.427",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4876.38,
        "daily_sales_date": "2019-03-25T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-24T23:00:16.313",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 8467.17,
        "daily_sales_date": "2019-03-24T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-23T23:00:23.517",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 12542.34,
        "daily_sales_date": "2019-03-23T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-22T23:50:14.363",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 12119.07,
        "daily_sales_date": "2019-03-22T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-21T23:50:12.527",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9403.31,
        "daily_sales_date": "2019-03-21T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-20T23:00:15.797",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5872.87,
        "daily_sales_date": "2019-03-20T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-19T23:10:09.547",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4634.91,
        "daily_sales_date": "2019-03-19T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-18T23:00:10.887",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5789.16,
        "daily_sales_date": "2019-03-18T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-17T23:00:07.93",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9743.17,
        "daily_sales_date": "2019-03-17T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-16T23:00:12.367",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 10729.08,
        "daily_sales_date": "2019-03-16T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-15T23:50:09.177",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9404.83,
        "daily_sales_date": "2019-03-15T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-14T23:50:11.423",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9029.93,
        "daily_sales_date": "2019-03-14T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-13T23:00:17.653",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4464.14,
        "daily_sales_date": "2019-03-13T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-12T23:00:14.063",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4711.15,
        "daily_sales_date": "2019-03-12T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-11T23:00:11.227",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 7090.3,
        "daily_sales_date": "2019-03-11T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-10T23:00:07.127",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 8083.23,
        "daily_sales_date": "2019-03-10T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-09T23:10:10.253",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 10253.7,
        "daily_sales_date": "2019-03-09T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-08T23:50:09.863",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 12339.06,
        "daily_sales_date": "2019-03-08T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-07T23:50:10.497",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 10200.52,
        "daily_sales_date": "2019-03-07T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-06T23:10:10.87",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 6694.55,
        "daily_sales_date": "2019-03-06T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-05T23:10:08.707",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5779.48,
        "daily_sales_date": "2019-03-05T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-04T23:00:09.39",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 4954.72,
        "daily_sales_date": "2019-03-04T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-03T23:00:10.75",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 8473.28,
        "daily_sales_date": "2019-03-03T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-02T23:00:09.637",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 11327.68,
        "daily_sales_date": "2019-03-02T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-03-01T23:50:11.49",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 11075.8,
        "daily_sales_date": "2019-03-01T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-28T23:50:10.217",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9143.1,
        "daily_sales_date": "2019-02-28T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-27T23:00:09.44",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5523.66,
        "daily_sales_date": "2019-02-27T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-26T23:00:08.913",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5235.5,
        "daily_sales_date": "2019-02-26T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-25T23:00:19.74",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5379.84,
        "daily_sales_date": "2019-02-25T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-24T23:00:09.44",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 7194.78,
        "daily_sales_date": "2019-02-24T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-23T23:00:11.783",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9438.9,
        "daily_sales_date": "2019-02-23T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-22T23:50:07.167",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 9989.46,
        "daily_sales_date": "2019-02-22T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-21T23:50:06.98",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 10120.73,
        "daily_sales_date": "2019-02-21T00:00:00"
    },
    {
        "RowInsertDateTime": "2019-02-20T23:00:14.46",
        "ServerName": "P781S001",
        "StoreName": "PRICELINE WERRIBEE",
        "daily_sales": 5732.03,
        "daily_sales_date": "2019-02-20T00:00:00"
    }
]

dates = [i['daily_sales_date'] for i in json_data]
values = [i['daily_sales'] for i in json_data]
print('sample date: ' + dates[0])
print('sample value: ' + str(values[0]))

df = pd.DataFrame({'dates':dates, 'values':values})
df['dates']  = pd.to_datetime(df['dates'])  # possibly format = "..."
plt.bar(df['dates'].values, df['values'].values)

plt.show()

Спасибо, я исправил код, так что теперь я не получаю «перенасыщение» дат, сложенных вместе, но по-прежнему отображается слишком много дат. Пытались использовать месяцлокатор, но без ожидаемых результатов.

JamesMatson 10.04.2019 04:49

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

ImportanceOfBeingErnest 10.04.2019 04:52

Например, вы имеете в виду образцы данных? Я обновил вопрос с этим.

JamesMatson 11.04.2019 02:58

С предоставленными данными это выглядит хорошо для меня.

ImportanceOfBeingErnest 11.04.2019 03:17

Вы вообще изменили код из моего примера? Поскольку это не так выглядит для меня. Я просто получаю значение года. Извините за боль, но не могли бы вы показать мне блок кода, который вы использовали для создания этого?

JamesMatson 11.04.2019 03:36

Спасибо - это работает для меня, однако, если я добавлю код, чтобы показывать только месяцы (по крайней мере, я думаю, что это должно делать), он показывает только метку года? date = [i['daily_sales_date'] для i в json_data] values ​​= [i['daily_sales'] для i в json_data] fig, ax = plt.subplots() df = pd.DataFrame({'dates':dates, 'values':values}) df['dates'] = pd.to_datetime(df['dates']) # возможно format = "..." plt.bar(df['dates'].values, df[' значения'].значения) ax.xaxis.set_major_locator(MonthLocator()) plt.show() результат: ibb.co/2SSJ0z4

JamesMatson 11.04.2019 03:52

Да, это, вероятно, ожидаемо, потому что вы не установили Formatter на ось.

ImportanceOfBeingErnest 11.04.2019 03:53

Спасибо. Я предполагаю, что мне лучше всего здесь обратиться к Google matplotlib и Formatter, чтобы понять синтаксис для использования этого атрибута.

JamesMatson 11.04.2019 04:15

Другие вопросы по теме