python - 如何使用与 Python 中绘制的数据框不同的数据框为 Seaborn 箱线图着色?
问题描述
我正在尝试使用 Seaborn 创建一个箱线图,该箱线图具有来自一个数据集的数据,但基于不同的数据集进行着色。下面以一个较小的数据集为例。我实际使用的数据集要大得多。
- 导入库:
import numpy as np
import pandas as pd
import seaborn as sns
- 创建数据集
data = ([[0.038095,0.259664,-0.016144],
[0.070850,0.533989,0.221025],
[0.010452,0.108146,0.007267],
[0.033338,0.006664,0.160160],
[0.005897,0.060313,-0.001070],
[0.089018,0.002074,0.409608],
[-0.010612,0.006957,0.331146],
[-0.002889,0.005181,0.928332]])
dataset = pd.DataFrame(data,columns=['A','B','C'])
dataset
- 制作箱线图
sns.boxplot(data=dataset)
- 这是我想用来为箱线图着色的数据集。基本上,我希望 A 和 B 为红色(“否”),C 为绿色(“是”)。
type = ([
['A', 'No'],
['B','No'],
['C', 'Yes']])
type_dataset = pd.DataFrame(type); type_dataset
那么,如何根据类型数据集对箱线图进行着色?我需要合并数据集吗?感谢任何/所有帮助!谢谢你。
解决方案
使用palette
关键字参数boxplot
:
sns.boxplot(data=dataset, palette=['r', 'r', 'g'])
或者,从您的type_dataset
对象中获取元数据:
cmap = {'Yes': 'green', 'No': 'red'}
sns.boxplot(data=dataset, palette=[cmap[v] for v in type_dataset[1]])
推荐阅读
- c# - 如何使用 log4net 为不同的实例记录到不同的日志文件?
- azure - Azure Webjob 的 CRON 表达式
- clang - 在 C 代码中使用 memcpy 并使用 wasm 目标编译时出现 llvm-link 错误
- angular - 在Angular6的AG网格中下载不可见字段导出到csv功能
- mongodb - mongo-scala-driver 事务的示例
- r - TTR 包在 R 3.4.4 中不起作用
- javascript - JavaScript TypeError:合约不是函数
- python - 使用 re.search 在 python 中找不到特定的子字符串
- javascript - 从 React Redux Thunk 返回承诺
- java - [tag][Android/Gradle] 使用 Gradle 任务从 Android 库代码中删除特定风格的库的导入语句