matplotlib中默认的随机颜色

2024-08-14 06:21:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我看了看卡格尔的univariate-plotting-with-pandas。有一条线生成条形图。在

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

我没有看到任何明确定义的配色方案。 我试着用jupyter notebook来绘制它,但只能看到一种颜色,而不是像Kaggle那样的所有多种颜色。在

我试着阅读文档和联机帮助,但无法通过上面的行获得生成这些颜色的任何方法。在

我们怎么做?是否有一个配置来默认设置这种随机性?在

At Kaggle:

Jupyter Notebook:


Tags: pandas定义plotvalue颜色withbarplotting
3条回答

在前一个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.1和{}上测试。在

在seaborn不是问题:

import seaborn as sns

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

matplotlib中不是空格,但可以将值转换为一行数据帧:

^{pr2}$

或者使用一些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)))

彩色的情节是用早期版本的pandas制作的(<;=0.23)。从那以后,熊猫决定把酒吧的情节变成单色,因为酒吧的颜色毫无意义。如果您仍然想使用pandas中“tab10”colormap中的默认颜色生成条形图,并重新创建以前的行为,那么它看起来像

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

相关问题 更多 >