Как разместить X-отметки на гистограмме и масштабировать ось Y - PullRequest
3 голосов
/ 25 апреля 2019

У меня есть следующий код, который создает небольшой фрейм данных разных стран и соответствующее значение оценки:

import pandas
import numpy 
import matplotlib
import matplotlib.pyplot as plt
df = pandas.DataFrame(data = ["Norway", "Denmark", "Iceland", 
"Switzerland", "Finland", "Netherlands", "Canada", "New Zealand", 
"Sweden", "Australia"], columns = ["Countries"])
df["Score"] = [7.6, 7.55, 7.50, 7.45, 7.40, 7.35, 7.30, 7.25, 7.20, 
7.15]

Затем я создаю гистограмму с помощью matplotlib:

bars = df['Countries']
height = df['Score']
plt.bar(bars, height, align = "center", alpha = 0.5)
plt.ylabel('Happiness Score')
plt.title('Happiness by Country')
plt.show

Iя не уверен в том, как сделать 2 вещи: 1) разметить названия стран по оси x, чтобы они не пересекались друг с другом 2) по-разному масштабировать ось y, чтобы все оценки не казались такими близкимидруг другу

1 Ответ

3 голосов
/ 25 апреля 2019

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

РЕДАКТИРОВАТЬ: Ради полноты, я добавляю предложение Рокки Ли для масштабирования оси Y.

plt.xticks(rotation=45)
plt.ylim(7, 8)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...