2
votes

affichage uniquement toutes les dates sur l'axe des x (ou regroupement par mois) pour réduire l'encombrement sur l'axe des x

J'apprends actuellement un peu de Python en utilisant Jupyter Notebook et la bibliothèque matplotlib pour produire des graphiques à partir de données JSON. J'ai pu produire des graphiques, ce qui est excellent, mais je ne sais pas comment désencombrer mon axe x. Voir la capture d'écran ci-dessous. Il y a une valeur pour chaque jour, et il y a des centaines de jours dans les données transmises. Cela crée un axe des x très encombré qui est illisible.

Code:

[
    {
        "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"
    }
]

Résultat:

entrez la description de l'image ici

C'est épais barre noire, c'est toutes mes dates :). J'ai essayé de passer en revue quelques exemples qui prétendument désencombrer les dates de l'axe des x, mais je ne les ai pas fait fonctionner. Je serai heureux d'afficher uniquement un sous-ensemble de dates le long de l'axe, ou même d'afficher simplement les noms des mois. Le mieux que je puisse faire est de faire en sorte que les étiquettes de l'axe X n'apparaissent pas du tout: / Un conseil?

 enter image description here

J'ai essayé ce qui suit selon l'une des suggestions:

from matplotlib.dates import MonthLocator
register_matplotlib_converters()

Ensuite, pour créer le graphique:

 entrez la description de l'image ici

Comme vous pouvez le voir, j'obtiens maintenant 2019 (l'année) mais non mois? Exemples de données inclus ci-dessous pour plus de clarté (sur demande)

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)


0 commentaires

3 Réponses :


1
votes

Vous ne pouvez afficher que toutes les n-ièmes dates pour réduire l'encombrement:

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])


0 commentaires

1
votes

Utilisez un localisateur de coche :

from matplotlib.dates import MonthLocator

ax.xaxis.set_major_locator(MonthLocator())

Cela créera une coche pour chaque mois. Consultez la documentation pour plus d'options de personnalisation.

p>


3 commentaires

Question mise à jour avec cette tentative. Comme vous pouvez le voir, l'année est maintenant affichée, mais c'est tout?


@JamesMatson C'est un peu étrange. Il serait utile que vous fournissiez un échantillon exact de vos données afin que nous puissions mieux répondre à votre question.


J'ai mis à jour la question avec les exemples de données. Je m'excuse d'avoir volé votre temps pour regarder cela, en tant que débutant avec Python, Jupyter Notebooks et matplotlib, il est probable à 99% que je fasse quelque chose de terriblement stupide: /



2
votes

Votre principal et unique problème est que les "dates" sont des chaînes. Si vous convertissez vos chaînes en dates, le tracé apparaîtra comme prévu. Vous le faites déjà dans le dataframe, mais n'utilisez cette colonne dans aucun autre code.

# 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()

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


8 commentaires

Merci, j'ai corrigé le code pour que maintenant je ne reçoive pas la `` surabondance '' de dates toutes ensemble, mais il y a encore trop de dates affichées. J'ai essayé d'utiliser le localisateur de mois mais sans les résultats escomptés.


Pas sûr de ce qui se passe. Mais je ne pense pas que quiconque puisse le découvrir sans exemple reproductible minimal .


Par exemple, voulez-vous dire les exemples de données? J'ai mis à jour la question avec ceci.


Avec les données fournies, cela me va bien .


Avez-vous ajusté le code à partir de cela dans mon exemple? Comme ça ne rend pas comme ça pour moi. J'obtiens juste la valeur de l'année. Désolé d'être pénible, mais pourriez-vous peut-être me montrer le bloc de code que vous avez utilisé pour produire cela?


Merci - cela fonctionne pour moi, mais si j'ajoute le code pour n'afficher que les mois (du moins c'est ce que je pense qu'il devrait faire), il n'affiche que l'étiquette de l'année? dates = [i ['daily_sales_date'] pour i dans json_data] values ​​= [i ['daily_sales'] pour i dans json_data] fig, ax = plt.subplots () df = pd.DataFrame ({'dates': dates, 'valeurs': valeurs}) df ['dates'] = pd.to_datetime (df ['dates']) # éventuellement format = "..." plt.bar (df ['dates']. valeurs, df [' values ​​']. values) ax.xaxis.set_major_locator (MonthLocator ()) plt.show () résultat: ibb.co/2SSJ0z4


Oui, c'est probablement prévu, car vous n'avez défini aucun Formatter sur l'axe.


Merci. Je suppose que mon meilleur pari ici est que Google matplotlib et Formatter comprennent la syntaxe pour utiliser cet attribut.