默认情况下,matplotlib

时间:2019-07-24 11:12:28

标签: python pandas matplotlib

我看了Kaggle的univariate-plotting-with-pandas。这条线会生成条形图。

reviews['province'].value_counts().head(10).plot.bar()

我没有看到任何专门定义的配色方案。 我尝试使用jupyter notebook进行绘制,但只能看到一种颜色,而不是像Kaggle那样看到的所有颜色。

我尝试阅读文档和在线帮助,但仅靠上一行就无法获得生成这些颜色的任何方法。

我们该怎么做?有没有默认设置此随机性的配置?

At Kaggle:

Jupyter Notebook:

3 个答案:

答案 0 :(得分:1)

在seaborn没问题:

import seaborn as sns

sns.countplot(x='province', data=reviews)

在matplotlib中不是空格,但是可以将值转换为一行DataFrame:

reviews['province'].value_counts().head(10).to_frame(0).T.plot.bar()

或使用一些qualitative colormap

import matplotlib.pyplot as plt

N = 10
reviews['province'].value_counts().head(N).plot.bar(color=plt.cm.Paired(np.arange(N)))

reviews['province'].value_counts().head(N).plot.bar(color=plt.cm.Pastel1(np.arange(N)))

答案 1 :(得分:1)

在以前的pandas版本之一中,似乎五彩缤纷的彩条是默认行为,而Kaggle的教程中一定使用了该彩色条(您可以阅读更多的here)。

通过定义标准颜色列表,然后将其用作bar中的参数,可以轻松地重新创建图。

colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd',
          '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']
reviews['province'].value_counts().head(10).plot.bar(color=colors)

enter image description here

pandas 0.24.1matplotlib 2.2.2上进行了测试。

答案 2 :(得分:1)

使用早期版本的熊猫(<= 0.23)制作了彩色情节。从那时起,大熊猫就决定使条形图成为单色,因为条形的颜色是毫无意义的。如果您仍想使用“ tab10”颜色图中的默认颜色(> 0.24的熊猫)生成具有默认颜色的条形图,从而重新创建以前的行为,则看起来像

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

N = 13
df = pd.Series(np.random.randint(10,50,N), index=np.arange(1,N+1))

cmap = plt.cm.tab10
colors = cmap(np.arange(len(df)) % cmap.N)
df.plot.bar(color=colors)

plt.show()

enter image description here