Abh*_*kar 1 python matplotlib seaborn
我希望散点图中的不同类具有不同的alpha值(透明度)。
sns.scatterplot(x="BorrowerAPR", y="LoanOriginalAmount", data=df_new,
alpha=0.03, hue="LoanStatus")
Run Code Online (Sandbox Code Playgroud)
期望Class 1 alpha为0.2。
我认为 Seaborn 不可能(尽管有人可能会证明我在这方面是错的),但你总是可以以通常的方式使用 matplotlib 。
这意味着您可以根据您喜欢的颜色(包括 Alpha)创建颜色图并创建绘图scatter。然后需要手动创建图例。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
import pandas as pd
df = pd.DataFrame(np.random.randn(100,2), columns=list("AB"))
df["hue"] = np.random.randint(0,2, size=100)
colors = [(0.1215, 0.4667, 0.7059, 0.7),
(1.0000, 0.4980, 0.0550, 0.2)]
cmap = ListedColormap(colors)
plt.scatter(x="A", y="B", c="hue", data=df, cmap=cmap)
hl = [(plt.Line2D([],[], color=cmap(i), ls="", marker="o"), i)
for i in np.unique(df["hue"].values)]
plt.legend(*zip(*hl), title="hue")
plt.show()
Run Code Online (Sandbox Code Playgroud)
一种方法是分别绘制它们,但如果未指定,则会得到不同的色调。这是内置tips数据集中的示例,其中alpha吸烟者和非吸烟者的值不同:
import seaborn as sns
import numpy as np
tips = sns.load_dataset("tips")
tips["alpha"] = np.where(tips.smoker == "Yes", 1.0, 0.5)
ax = sns.scatterplot(x="total_bill", y="tip",
data=tips[tips.alpha == 0.5], alpha=0.5)
sns.scatterplot(x="total_bill", y="tip", data=tips[tips.alpha == 1.0],
alpha=1.0, ax=ax)
Run Code Online (Sandbox Code Playgroud)
这也将较高的alpha点堆叠在较低的alpha上面。
更广泛地适用于多个alpha类别:
alphas = tips.alpha.sort_values().unique()
ax = sns.scatterplot(x="total_bill", y="tip",
data=tips[tips.alpha == alphas[0]], alpha=alphas[0])
for alpha in alphas[1:]:
sns.scatterplot(x="total_bill", y="tip",
data=tips[tips.alpha == alpha], alpha=alpha, ax=ax)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1802 次 |
| 最近记录: |