Как изменить тики по осям X и Y с помощью категориальных переменных в Python matplotlib? - PullRequest
1 голос
/ 08 января 2020

Я хочу построить среднюю цену (переменная цифра c) автомобилей по двум категориальным переменным: размер кузова («кабриолет», «хардтоп», «хэтчбек», «седан», «универсал») и диск - колеса («полный привод», «передний привод», «задний привод») в тепловой карте.

Фрейм данных:

   drive-wheels   body-style         price
0           4wd    hatchback   7603.000000
1           4wd        sedan  12647.333333
2           4wd        wagon   9095.750000
3           fwd  convertible  11595.000000
4           fwd      hardtop   8249.000000
5           fwd    hatchback   8396.387755
6           fwd        sedan   9811.800000
7           fwd        wagon   9997.333333
8           rwd  convertible  23949.600000
9           rwd      hardtop  24202.714286
10          rwd    hatchback  14337.777778
11          rwd        sedan  21711.833333
12          rwd        wagon  16994.222222

Используя этот код:

df_test = df[["drive-wheels", "body-style", "price"]]
df_grp = df_test.groupby(["drive-wheels", "body-style"], as_index=False).mean()
print(df_grp)
df_pivot = df_grp.pivot(index="drive-wheels", columns="body-style")
print(df_pivot)
plt.pcolor(df_pivot, cmap="RdBu")
plt.colorbar()
plt.xlabel("body-style")
plt.ylabel("drive-wheels")
plt.show()

Я получаю следующий результат: enter image description here

Однако я хочу, чтобы обе оси были помечены их категориальными значениями, как здесь: enter image description here

Как я могу пометить тики категориальными значениями?

1 Ответ

3 голосов
/ 08 января 2020

Это легко сделать, используя библиотеку Seaborn :

Удалите раздел кода plt вашего кода и вставьте этот код:

import seaborn as sns

df_pivot = df_pivot.fillna(0)
sns.heatmap(df_pivot, cmap="RdBu")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...