Dataframe Бар сюжет с Seaborn - PullRequest
       2

Dataframe Бар сюжет с Seaborn

1 голос
/ 29 апреля 2020

Я пытаюсь создать гистограмму из DataFrame с индексом Datetime. Это пример рабочего кода:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
sns.set()

index = pd.date_range('2012-01-01', periods=48, freq='M')
data = np.random.randint(100, size = (len(index),1))
df = pd.DataFrame(index=index, data=data, columns=['numbers'])

fig, ax = plt.subplots()
ax.bar(df.index, df['numbers'])

Результат: enter image description here

Как видно, белые полосы не могут быть хорошо различимы по отношению к фон (почему?).

Я попытался использовать вместо:

df['numbers'].plot(kind='bar')
import matplotlib.ticker as ticker
ticklabels = df.index.strftime('%Y-%m')
ax.xaxis.set_major_formatter(ticker.FixedFormatter(ticklabels))

с таким результатом: enter image description here

Но таким образом я потерять автоматику c метки xticks (и сетка) с интервалом в 6 месяцев.

Есть идеи?

Ответы [ 2 ]

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

Вы можете просто изменить стиль:

import matplotlib.pyplot as plt

index = pd.date_range('2012-01-01', periods=48, freq='M')
data = np.random.randint(100, size = (len(index),1))
df = pd.DataFrame(index=index, data=data, columns=['numbers'])

plt.figure(figsize=(12, 5))
plt.style.use('default')
plt.bar(df.index,df['numbers'],color="red")

enter image description here

0 голосов
/ 29 апреля 2020

Вы на самом деле не используете seaborn. Заменить ax.bar(df.index, df['numbers']) на

sns.barplot(df.index, df['numbers'], ax=ax)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...