微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在matplotlib中绘制顺序箱图对照组和治疗组

如何解决在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

enter image description here

这不是我想要的。我正在寻找类似以下的内容

enter image description here

解决方法

您可以做的是利用 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()

以上代码的输出如下:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。