繁体   English   中英

仅从包含所有值的数据框中绘制上限

Plotting upper quanitles only from dataframe containg all values

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个大的数据框df,其中包含一个非唯一标识符(Cell.ID)列表以及该标识符中的信息。 看起来像这样:

    Cell.ID Volume
1   025001G 2.08
2   025001G 0.30
3   025001G 0.99
4   025001G 0.60
5   025001G 0.43
6   025001G 0.24
7   025001G 0.59
8   025001R 1.74
9   025001R 1.09
10  025001R 0.58
11  025001R 0.75
12  025001R 0.62
13  025002G 8.59
14  025002G 1.26
15  025002R 6.31
16  025002R 0.56
17  025003G 1.95
18  025003G 2.18
19  025003G 0.21

我想做的是绘制一个图,其中Y轴对应于Volume,X坐标对应于特定Cell.ID的实例数。 这部分很简单,但是我希望每个对象的Y坐标要么是一个跨越上两个分位数的框,要么是代表第二高分位数的点。 使用tapply(df$Volume,quantile)table(df$Cell.ID)我可以创建一个数据框,看起来像下面的数据框,其中包含制作上述绘图所需的信息。 “频率”包含有关特定Cell.ID(行名)已显示多少次的信息,“分位数”包含有关该Cell.ID中对象的卷分布的信息。

 row.names       quantile                        Var1     Freq
1   010001G c(0.27, 0.27, 0.325, 0.6125, 1.31)    010001G   4
2   010001R c(0.22, 0.365, 0.51, 0.655, 0.8)     010001R    2
3   010002G c(0.67, 0.8025, 0.935, 1.0675, 1.2)  010002G    2
4   010002R c(0.25, 0.41, 0.57, 0.73, 0.89)      010002R    2
5   010003G c(0.22, 0.295, 0.345, 0.3725, 0.38)  010003G    4
6   010003R c(0.22, 0.2675, 0.315, 0.3625, 0.41) 010003R    2
7   010004G c(0.35, 0.41, 0.625, 1.165, 2.2)     010004G    4
8   010004R c(0.2, 0.4075, 0.615, 0.8225, 1.03)  010004R    2
9   010005G c(3.95, 3.95, 3.95, 3.95, 3.95)      010005G    1
10  010005R c(0.47, 0.775, 1.08, 2.53, 3.98)     010005R    3
11  010006G c(0.25, 0.98, 1.71, 2.98, 4.25)      010006G    3

但是,我坚持如何只选择每一行中的某些分位数以从分位数列进行绘制。 我已经尝试了一些方法,但是得到了如下错误:

Error in xy.coords(x, y, xlabel, ylabel, log) : 
  'x' is a list, but does not have components 'x' and 'y 
1 个回复

如果我正确理解了您的问题,则不需要所有的分位数,只需其中的一个或两个即可。 因此,您可以尝试执行以下操作:

Q75 <- tapply(df$Volume, df$Cell.ID, quantile, probs = 0.75)
freq <- table(df$Cell.ID)
plot(x = as.vector(freq), y = Q75, 
     xlab = "Frequency", ylab = "75th Quantile")

或对于第75和95分位数:

Q7595 <- do.call(rbind.data.frame, 
                 tapply(df$Volume, df$Cell.ID, quantile, 
                        probs = c(0.75, 0.95), simplify = TRUE))
## Empty plot
matplot(x = as.vector(freq), y = Q7595, type = "n", 
        xlab = "Frequency", ylab = "75th and 95th Quantiles")
## Boxes 
rect(xleft = as.vector(freq) - 0.25, xright = as.vector(freq) + 0.25, 
     ytop = Q7595[,1], ybottom = Q7595[,2])

结果看起来像这样: 在此处输入图片说明

当然,它需要一些美学上的改变,但我希望它能有所帮助,Alex

2 ggmap没有从数据框中绘制地图上的所有点

我遇到的问题是,每次尝试将点绘制到地图上时,似乎都将其删除。 Removed 10001 rows containing missing values (geom_point). 是我得到的错误,我的数据库确实缺少值,但是我不明白为什么要删除值。 我的目的是在地图上绘制点,然 ...

3 从数据框中绘制每周的值计数

假设我有以下格式的pandas数据框,该框说明了某人在某个时间戳记的商店中某人在2015年每天的总购买价值($): 等等,直到2015年12月31日...我将如何绘制每周的总价值。 因此,该图在x轴上具有周数,在y轴上具有总价值(每周所有购买量的总和)。 编辑:这仅与值列有关,与 ...

4 绘制具有重复值的dataFrame

我在这里有此数据集,我想绘制一个图表,将人口差异显示为- 这是我尝试过的 但是,如果您清楚地注意到, 'Name'中的所有'Name'都不会出现在x-axis ,并且它们都聚集在一起。 我不确定这是否由于在较小区域中聚集大量名称而发生。 还是由于'Name'列中存在重复项,现在,这 ...

5 仅绘制热图的上/下三角形

在 maptplotlib 中,可以使用 imshow 函数创建相关矩阵的热图表示。 根据定义,这样的矩阵围绕其主对角线对称,因此无需同时显示上三角形和下三角形。 例如: (来源: wisc.edu ) 上面的例子取自 这个站点不幸的是,我不知道如何在 matplotlib 中做到这一点。 将 ...

7 仅从另一个数据框中的非匹配列创建一个数据框中的列,并将所有值设置为 0

我有两个如下所示的数据框: df1 和 df2 共享相同的列名,除了仅在 df2 中找到的“D”。 我想要做的是将 D 添加到 df1 但用“0”填充所有行 换句话说,如果一列存在于 df2 但它不存在于 df1 中,则将该列添加到 df1 但将该列中的所有值设为 0(如下) 我意识到将一 ...

9 仅根据数据框中的 groupby 数据绘制表?

我最终想将基于 DataFrame 的“groupby”的表格写入 pdf 文件。 为此,创建表格的“情节”似乎是实现它的一种方式。 我使用下面的代码。 使用print()可以很好地显示该表,但在尝试绘制该表时会产生错误: 我根本不知道如何解决它。 该代码在“完整”DataFrame 上运行 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM