簡體   English   中英

Dataframe 條 plot 與 Seaborn

[英]Dataframe Bar plot with Seaborn

我正在嘗試從帶有日期時間索引的 DataFrame 創建一個條形 plot。 這是一個示例工作代碼:

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

結果是: 在此處輸入圖像描述

如您所見,白條在背景方面無法很好地區分(為什么?)。

我嘗試使用:

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

結果: 在此處輸入圖像描述

但是通過這種方式,我失去了 6 個月間隔的自動 xticks 標簽(和網格)。

任何想法?

您可以更改樣式:

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

在此處輸入圖像描述

您實際上並未使用seaborn ax.bar(df.index, df['numbers'])替換為

sns.barplot(df.index, df['numbers'], ax=ax)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM