如何解决在matplotlib中绘制顺序箱图对照组和治疗组
我在连续的时间获得了对照组和治疗组的测量值,我想每次沿x轴按时间绘制测量值的箱形图。
我该怎么做?看起来好像有多个箱形图彼此相邻的示例,但根据某个时间变量对它们进行组织使我难以理解。
我将在“整洁”的数据框中给出一些示例数据。 X是度量,T是时间,G是组。
var express = require('express');
var app = express();
var multer = require('multer');
var storage = multer.diskStorage({
destination: function (req,file,cb) {
cb(null,'uploads/')
},filename: function (req,Date.Now() + '-' + file.originalname)
}
})
var upload = multer({ storage: storage }).array('userfiles',10);
app.post('/upload',function (req,res) {
upload(req,res,function (err) {
if (err instanceof multer.MulterError) {
// A Multer error occurred when uploading.
return res.status(500).json(err);
} else if (err) {
// An unkNown error occurred when uploading.
return res.status(500).json(err);
}
let uploadedFiles = [];
for (let item of req.files) {
uploadedFiles.push({ filename: item.originalname });
}
// Everything went fine.
res.json({ progress: 100,files: uploadedFiles });
})
});
app.listen(8000,(err) => {
if (err) {
console.log('ERROR:',err);
} else {
console.log('working on http://localhost:8000');
}
})
此示例在时间1,时间2和时间3会有两个相邻的箱形图。
X | T | G
==========
1 | 1 | 0
2 | 1 | 1
3 | 1 | 0
2 | 1 | 1
3 | 2 | 0
7 | 2 | 1
6 | 2 | 0
3 | 2 | 1
9 | 3 | 0
5 | 3 | 1
1 | 3 | 0
1 | 3 | 1
这不是我想要的。我正在寻找类似以下的内容。
解决方法
您可以做的是利用 by ='列名'参数来指定希望对数据进行分组的列。此外,通过传递 column = [column_1,column_2] 参数,您可以指定要针对'T'变量进行评估的列。下面的代码为每个列(X和G)创建2个箱形图可视化。在这两种情况下,您的数据都按所需的列“ T”分组。
# Create boxplots for columns X and G,each grouped by column T
df.boxplot(column = ['X','G'],# specify columns you wish to analyze
by = 'T',# specify column by which you wish to group data
vert = False,# specify whethere you want vertical or horizontal output
figsize = (16,8)) # specify the size of your output
# Show the result
plt.show()
以上代码的输出如下:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。