【发布时间】:2019-05-15 21:16:09
【问题描述】:
我正在传递要使用 pd.scatterplot 绘制的 pandas 数据框,并希望使用 'bright' 调色板。颜色将由我作为hue 传递给绘图函数的整数系列中的值确定。
问题在于,这只适用于hue 系列只有两个不同值的情况。当它只有一个或超过 2 个不同的值时,绘图默认为米色到紫色的调色板。
当使用sns.set_palette('bright') 设置调色板时,一切都会如上文所述发生。但是,当我在绘图函数调用中执行palette='bright'(并且 n_classes 为 != 2)时,我会抛出一个明确的值错误:
ValueError: Palette {} not understood
复制代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_palette('bright') # first method
n_classes = 3
a = np.arange(10)
b = np.random.randn(10)
c = np.random.randint(n_classes, size=10)
s = pd.DataFrame({'A': a, 'B':b, 'C': c})
sns.scatterplot(data=s, x='A', y='B', hue='C')
plt.show()
对于第二种方法,只需将散点图调用更改为
sns.scatterplot(data=s, x='A', y='B', hue='C', palette='bright')
有没有办法在我想要的调色板中获得多个色调级别?我做错了什么还是这是一个错误?
【问题讨论】:
标签: python pandas matplotlib plot seaborn