如何设置seaborn中的色调级别?

782*_*238 2 python scatter-plot seaborn

通过以下代码,我可以使用seaborn的散点图来绘制数据,并将某些颜色分配给数据值。

如何设置此示例中使用的颜色数量?(例如,如果我只想使用两种颜色或超过示例中显示的 6 种颜色)

import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset('tips')

print("tips.columns=", tips.columns) # tips.columns= Index(['total_bill', 'tip', 'sex', 'smoker', 'day', 'time', 'size'], dtype='object')


sns.scatterplot(data=tips, x="total_bill", y="tip", hue="total_bill", )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Joh*_*anC 5

Seabornscatterplot有一个legend=关键字,可以是\'auto\'\'brief\'\'full\'False。如果您想要其他东西,您需要创建一个自定义图例。

\n

如果您想控制所使用的级别和颜色的确切数量,您可以使用这些色调级别创建一个附加列。这样,您就可以完全控制级别及其命名。熊猫pd.cut()可能会有所帮助。它接受多个容器或边界列表。您可以同时设置名称(默认标签将边界指示为\'({start},{end}]\')。

\n

这是一个例子:

\n
import matplotlib.pyplot as plt\nimport seaborn as sns\nimport pandas as pd\n\ntips = sns.load_dataset(\'tips\')\n\nfig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(14, 4))\n\ntips[\'bill level\'] = pd.cut(tips["total_bill"], [0, 30, 1000], labels=["\xe2\x89\xa4 30", "> 30"])\nsns.scatterplot(data=tips, x="total_bill", y="tip", hue="bill level", palette=[\'turquoise\', \'crimson\'], ax=ax1)\nax1.set_title(\'2 levels, 2 colors\')\n\ntips[\'bill level\'] = pd.cut(tips["total_bill"], bins=7, labels=[f\'level {i}\' for i in range(1, 8)])\nsns.scatterplot(data=tips, x="total_bill", y="tip", hue="bill level", palette=\'Set2\', ax=ax2)\nax2.set_title(\'7 levels, 7 colors\')\n\nplt.tight_layout()\nplt.show()\n
Run Code Online (Sandbox Code Playgroud)\n

sns.scatterplot 具有用户控制的色调级别

\n