Графическая гистограмма не отображает правильно почтовый индекс на оси x - PullRequest
0 голосов
/ 29 мая 2020

Я создаю столбчатую диаграмму с 10 самыми высокими суммами для каждого почтового индекса. Я преобразовал почтовый индекс в строку, но на гистограмме ось x отображается как int 20K, 50K, et c. При проверке типа на почтовом индексе он возвращает тип объекта вместо строки. Я запутался. Как отобразить почтовый индекс на оси x (например, «95519», «47905», «44720»)?

Bar Chart

Data Set is as follows
        zip code  index
54      95519        1.70
61      81212        1.70
160     47905        1.70
421     57201        1.70
208      1930        1.69
366     44720        1.69
298     28401        1.68
532     82214        1.68
102     30165        1.67
125     50501        1.67

df3 = df2[['zip code', 'index']]
df3 = df3.nlargest(10, 'index')

 df3['zip code'] = df3[['zip code']].astype(str)


 fig = px.bar(df3, x='zip code', y='index',
         hover_data=['zip code', 'index'], color='index',
         labels={'index':'INDEX'}, height=400)

1 Ответ

1 голос
/ 29 мая 2020

Если вы добавите fig.update_layout(xaxis=dict(type='category')), ваш код будет работать, так как это гарантирует, что почтовый индекс будет рассматриваться как категориальный, а не числовой. Я привел пример ниже.

import pandas as pd
import plotly.express as px

df3 = pd.DataFrame({'zip code': [95519, 81212, 47905, 57201, 1930, 44720, 28401, 82214, 30165, 50501],
                    'index': [1.70, 1.70, 1.70, 1.70, 1.69, 1.69, 1.68, 1.68, 1.67, 1.67]})

fig = px.bar(df3, x='zip code', y='index', hover_data=['zip code', 'index'], color='index', labels={'index': 'INDEX'}, height=400)

fig.update_layout(xaxis=dict(type='category'))

fig.show()

enter image description here

...