如何在 python 中以两种不同颜色显示来自两个标签 (0,1) 的数值?
How do I display numerical values that come from two labels (0,1) in two different colors in python?
我目前正在研究 二进制 SVM classifier。为了可视化 classifier 的工作原理,我想创建一个 概率密度函数直方图 (用 scikit 计算),它显示单个数据点的标量(无论它属于到 class 0 或 1).
剧情:
请注意,在 SVM 中,classifier 的 'cutting edges' 是 -1 和 1。该图很好地描述了在 [-1 处有一些 决策边界, 1].
回到我的问题:
我想分别给标签 0 和 1 的数据点着色 以便分析 soft margin(-1 和 1 之间的区域)
概率密度函数存储为np.array
相应的标签存储在 pandas 数据帧中。
我如何 link 数组和数据框将类别 0 的数值绘制在 'green' 中,类别 1 绘制为 'blue' ?
代码:
plt.hist(decisions_function_cv, bins=500, color='navy')
我试图将两者保存在同一个数据框中,但我无法解密我如何以上述预期方式将其编程到决策函数中:(
有人有聪明的方法吗?
提前致谢!
编辑:示例代码:
概率标量。 fct.
np.array([.5,0.6,1,1,1,-1,-1,-1,-.5,-0.6])
具有相应标签的程式化数据框:
df['labels']
0 1.0
1 1.0
2 1.0
3 1.0
4 1.0
5 1.0
6 0.0
7 0.0
8 1.0
9 1.0
*类别 1 的数值应绘制为蓝色
类别 0 的数值应以绿色绘制
使用 seaborn
,您可以轻松构建复杂的 pyplot
图表。
首先,我们重建您的数据框:
import pandas as pd
import numpy as np
df = pd.DataFrame()
df['values'] = np.array([.5,0.6,1,1,1,-1,-1,-1,-.5,-0.6])
df['category'] = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0]
print(df)
values category
0 0.5 1.0
1 0.6 1.0
2 1.0 1.0
3 1.0 1.0
4 1.0 1.0
5 -1.0 1.0
6 -1.0 0.0
7 -1.0 0.0
8 -0.5 1.0
9 -0.6 1.0
然后我们使用您的数据集并使用“类别”列配置颜色(hue
参数)(注意您定义的调色板独立于实际值):
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_style('whitegrid')
sns.histplot(
data=df,
x="values",
hue="category",
palette=['green', 'blue']
)
这将打印以下结果:
我目前正在研究 二进制 SVM classifier。为了可视化 classifier 的工作原理,我想创建一个 概率密度函数直方图 (用 scikit 计算),它显示单个数据点的标量(无论它属于到 class 0 或 1).
剧情:
请注意,在 SVM 中,classifier 的 'cutting edges' 是 -1 和 1。该图很好地描述了在 [-1 处有一些 决策边界, 1].
回到我的问题: 我想分别给标签 0 和 1 的数据点着色 以便分析 soft margin(-1 和 1 之间的区域)
概率密度函数存储为np.array 相应的标签存储在 pandas 数据帧中。
我如何 link 数组和数据框将类别 0 的数值绘制在 'green' 中,类别 1 绘制为 'blue' ?
代码:
plt.hist(decisions_function_cv, bins=500, color='navy')
我试图将两者保存在同一个数据框中,但我无法解密我如何以上述预期方式将其编程到决策函数中:(
有人有聪明的方法吗? 提前致谢!
编辑:示例代码:
概率标量。 fct.
np.array([.5,0.6,1,1,1,-1,-1,-1,-.5,-0.6])
具有相应标签的程式化数据框:
df['labels']
0 1.0
1 1.0
2 1.0
3 1.0
4 1.0
5 1.0
6 0.0
7 0.0
8 1.0
9 1.0
*类别 1 的数值应绘制为蓝色
类别 0 的数值应以绿色绘制
使用 seaborn
,您可以轻松构建复杂的 pyplot
图表。
首先,我们重建您的数据框:
import pandas as pd
import numpy as np
df = pd.DataFrame()
df['values'] = np.array([.5,0.6,1,1,1,-1,-1,-1,-.5,-0.6])
df['category'] = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0]
print(df)
values category
0 0.5 1.0
1 0.6 1.0
2 1.0 1.0
3 1.0 1.0
4 1.0 1.0
5 -1.0 1.0
6 -1.0 0.0
7 -1.0 0.0
8 -0.5 1.0
9 -0.6 1.0
然后我们使用您的数据集并使用“类别”列配置颜色(hue
参数)(注意您定义的调色板独立于实际值):
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_style('whitegrid')
sns.histplot(
data=df,
x="values",
hue="category",
palette=['green', 'blue']
)
这将打印以下结果: