相关疑难解决方法(0)

重新排序因子的级别而不更改值的顺序

我的数据框有一些数值变量和一些分类factor变量.这些因素的等级顺序不是我希望它们的方式.

numbers <- 1:4
letters <- factor(c("a", "b", "c", "d"))
df <- data.frame(numbers, letters)
df
#   numbers letters
# 1       1       a
# 2       2       b
# 3       3       c
# 4       4       d
Run Code Online (Sandbox Code Playgroud)

如果我更改了级别的顺序,则这些字母不再带有相应的数字(我的数据从这一点开始是完全无意义的).

levels(df$letters) <- c("d", "c", "b", "a")
df
#   numbers letters
# 1       1       d
# 2       2       c
# 3       3       b
# 4       4       a
Run Code Online (Sandbox Code Playgroud)

我只想更改级别顺序,因此在绘图时,条形图按所需顺序显示 - 可能与默认的字母顺序不同.

r levels

114
推荐指数
5
解决办法
8万
查看次数

按数据框中显示的降序绘制数据

我一直在努力订购并在ggplot2中绘制一个简单的数据框作为条形图.

我想绘制出现的数据,以便相应类别(例如'人','男')的值('count'变量)从高到低绘制.

我已经跟随这个网站上的其他主题提出了类似的问题,但是无法让它发挥作用!

## Dataset (mesh2)

#Category                   Count

#Humans             62

#Male               40

#Female             38

#Adult              37

#Middle Aged            30

#Liver/anatomy & histology          29

#Organ Size                 29

#Adolescent                 28

#Child              21

#Liver/radiography*             20

#Liver Transplantation*     20

#Tomography, X-Ray Computed         20

#Body Weight            18

#Child, Preschool               18

#Living Donors*         18

#Infant             16

#Aged               14

#Body Surface Area              14

#Regression Analysis        11

#Hepatectomy            10

## read in data (mesh2) as object (mesh2)

mesh2 <- read.csv("mesh2.csv", header = T)

## order data by count …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

41
推荐指数
1
解决办法
9万
查看次数

重新排序()没有正确地重新排序ggplot中的因子变量

我很困惑为什么箱形图没有在这个情节中订购:

set.seed(200)
x <- data.frame(country=c(rep('UK', 10), 
                          rep("USA", 10), 
                          rep("Ireland", 5)),
                wing=c(rnorm(25)))

ggplot(x, aes(reorder(country, wing, median), wing)) + geom_boxplot()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何根据最高最低中位数(从左到右)订购箱图?

r ggplot2

15
推荐指数
1
解决办法
7719
查看次数

订购ggplot中的堆积条形图

我的同事和我正在尝试根据y值排序堆积条形图,而不是按x字母顺序排列.

样本数据是:

samp.data <- structure(list(fullname = c("LJ", "PR", 
"JB", "AA", "NS", 
"MJ", "FT", "DA", "DR", 
"AB", "BA", "RJ", "BA2", 
"AR", "GG", "RA", "DK", 
"DA2", "BJ2", "BK", "HN", 
"WA2", "AE2", "JJ2"), I = c(2L, 
1L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 2L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L), S = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 3L, 2L, 3L, 2L, 2L, 2L, 3L, 2L, 3L, 2L, 3L, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

13
推荐指数
1
解决办法
3万
查看次数

ggplot2中直方图条的反向填充顺序

我注意到在使用绘图创建的直方图中填充条形的默认值是反向字母顺序,而图例按字母顺序排序.我有什么方法可以按字母顺序排序吗?问题在下面的示例图中很明显.奖金问题:我如何将从左到右的条形顺序从字母顺序更改为减少计数总数?谢谢

df <- data.frame(
  Site=c("A05","R17","R01","A05","R17","R01"),
  Group=c("Fungia","Fungia","Acro","Acro","Porites","Porites"),
  Count=c(6,8,6,7,2,9),
  Total=c(13,10,15,13,10,15)
)

  Site   Group Count Total
1  A05  Fungia     6    13
2  R17  Fungia     8    10
3  R01    Acro     6    15
4  A05    Acro     7    13
5  R17 Porites     2    10
6  R01 Porites     9    15

qplot(df$Site,data=df,weight=df$Count,geom="histogram", fill=df$Group, ylim = c(0,16)) + 
  xlab("Sites") + 
  ylab("Counts") + 
  scale_fill_hue(h=c(0,360), l=70, c=70,name = "Emergent Groups")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我试图将计数从高到低和填充颜色排序,以便它们匹配图例的字母顺序.我一直试图用初始帖子的提示调整它几个小时但没有成功.任何有关这方面的帮助将非常感谢!!!

r ggplot2

13
推荐指数
1
解决办法
9883
查看次数

使用coord_flip()在ggplot2条形图中的图例条目顺序

我正在努力在我用R中的ggplot2制作的图表中获得正确的变量排序.

假设我有一个数据帧,例如:

set.seed(1234)
my_df<- data.frame(matrix(0,8,4))
names(my_df) <- c("year", "variable", "value", "vartype")
my_df$year <- rep(2006:2007)
my_df$variable <- c(rep("VX",2),rep("VB",2),rep("VZ",2),rep("VD",2))
my_df$value <- runif(8, 5,10) 
my_df$vartype<- c(rep("TA",4), rep("TB",4))
Run Code Online (Sandbox Code Playgroud)

产生下表:

  year variable    value vartype
1 2006       VX 5.568517      TA
2 2007       VX 8.111497      TA
3 2006       VB 8.046374      TA
4 2007       VB 8.116897      TA
5 2006       VZ 9.304577      TB
6 2007       VZ 8.201553      TB
7 2006       VD 5.047479      TB
8 2007       VD 6.162753      TB
Run Code Online (Sandbox Code Playgroud)

有四个变量(VX,VB,VZ和VD),属于两组变量类型(TA和TB).

我想将值绘制为y轴上的水平条,首先按变量组垂直排序,然后按变量名称排序,按年份分面,x轴上的值和填充颜色对应于变量组.(即在这个简化的例子中,顺序应该是,从上到下,VB,VX,VD,VZ)

1)我的第一次尝试是尝试以下方法:

ggplot(my_df,        
    aes(x=variable, y=value, fill=vartype, order=vartype)) + …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

12
推荐指数
1
解决办法
8290
查看次数

根据ggplot2的大小订购条形图,即数值

此问题询问是否根据未汇总的表格排序条形图.我的情况略有不同.这是我原始数据的一部分:

experiment,pvs_id,src,hrc,mqs,mcs,dmqs,imcs
dna-wm,0,7,9,4.454545454545454,1.4545454545454546,1.4545454545454541,4.3939393939393945
dna-wm,1,7,4,2.909090909090909,1.8181818181818181,0.09090909090909083,3.9090909090909087
dna-wm,2,7,1,4.818181818181818,1.4545454545454546,1.8181818181818183,4.3939393939393945
dna-wm,3,7,8,3.4545454545454546,1.5454545454545454,0.4545454545454546,4.272727272727273
dna-wm,4,7,10,3.8181818181818183,1.9090909090909092,0.8181818181818183,3.7878787878787876
dna-wm,5,7,7,3.909090909090909,1.9090909090909092,0.9090909090909092,3.7878787878787876
dna-wm,6,7,0,4.909090909090909,1.3636363636363635,1.9090909090909092,4.515151515151516
dna-wm,7,7,3,3.909090909090909,1.7272727272727273,0.9090909090909092,4.030303030303029
dna-wm,8,7,11,3.6363636363636362,1.5454545454545454,0.6363636363636362,4.272727272727273
Run Code Online (Sandbox Code Playgroud)

我只需要一些变量,即mqsimcs它们分组pvs_id,所以我创建了一个新表:

m = melt(t, id.var="pvs_id", measure.var=c("mqs","imcs"))
Run Code Online (Sandbox Code Playgroud)

我可以将其绘制为条形图,其中可以看到MQSIMCS之间的相关性.

ggplot(m, aes(x=pvs_id, y=value)) 
+ geom_bar(aes(fill=variable), position="dodge", stat="identity")
Run Code Online (Sandbox Code Playgroud)

但是,我希望生成的条形按MQS从左到右按降序排序.当然,IMCS值应与这些值一起订购.

我怎么能做到这一点?一般来说,给定任何熔融数据帧 - 这对于ggplot2中的图形看起来很有用,而今天我第一次偶然发现它 - 我如何指定一个变量的顺序?

sorting r bar-chart ggplot2

7
推荐指数
1
解决办法
2794
查看次数

ggplot2 geom_bar - 如何保持data.frame的顺序

我有一个关于我的数据顺序的问题geom_bar.

这是我的数据集:

  SM_P,Spotted melanosis on palm,16.2
  DM_P,Diffuse melanosis on palm,78.6
  SM_T,Spotted melanosis on trunk,57.3
  DM_T,Diffuse melanosis on trunk,20.6
  LEU_M,Leuco melanosis,17
  WB_M,Whole body melanosis,8.4
  SK_P,Spotted keratosis on palm,35.4
  DK_P,Diffuse keratosis on palm,23.5
  SK_S,Spotted keratosis on sole,66
  DK_S,Diffuse keratosis on sole,52.8
  CH_BRON,Dorsal keratosis,39
  LIV_EN,Chronic bronchities,6
  DOR,Liver enlargement,2.4
  CARCI,Carcinoma,1
Run Code Online (Sandbox Code Playgroud)

我分配以下colnames:

  colnames(df) <- c("abbr", "derma", "prevalence") # Assign row and column names
Run Code Online (Sandbox Code Playgroud)

然后我绘制:

  ggplot(data=df, aes(x=derma, y=prevalence)) + geom_bar(stat="identity") + coord_flip()
Run Code Online (Sandbox Code Playgroud)

情节

为什么ggplot2会随机更改数据的顺序.我希望我的数据顺序与我的一致data.frame.

任何帮助深表感谢!

r ggplot2 geom-bar

7
推荐指数
1
解决办法
1万
查看次数

如何使用 R ggplot 按值对条形图进行排序?

这是我的简单资产数据集:

ID  Type    Currency    Value
a   Bond    GBP         10
b   Bond    EUR         20
c   Stock   GBP         3
d   Stock   GBP         60
e   Bond    GBP         8
f   Bond    USD         39
g   Stock   USD         1
Run Code Online (Sandbox Code Playgroud)

这是代码:

 assets <- read_excel("C:/R/SampleData.xlsx")
 g <- ggplot(assets, aes(Currency, Value))
 g + geom_col()
Run Code Online (Sandbox Code Playgroud)

这是我得到的情节:

条形图

我正在尝试创建相同的图,但条形按值排序(按降序)我该如何实现?我尝试了以下代码:

assets$Currency <- factor(assets$Currency, levels = assets$Currency[order(assets$Value)])
Run Code Online (Sandbox Code Playgroud)

但我收到以下警告消息,并且图表仍未正确排序:

Warning message:
In `levels<-`(`*tmp*`, value = if (nl == nL) as.character(labels) else paste0(labels,  :
duplicated levels in factors are deprecated
Run Code Online (Sandbox Code Playgroud)

谢谢!

r ggplot2

7
推荐指数
1
解决办法
1万
查看次数

绘制摘要统计数据

对于以下数据集,

Genre   Amount
Comedy  10
Drama   30
Comedy  20
Action  20
Comedy  20
Drama   20
Run Code Online (Sandbox Code Playgroud)

我想构建一个ggplot2折线图,其中x轴是Genre,而y轴是所有量的总和(以条件为基础Genre).

我尝试过以下方法:

p = ggplot(test, aes(factor(Genre), Gross)) + geom_point()
p = ggplot(test, aes(factor(Genre), Gross)) + geom_line()
p = ggplot(test, aes(factor(Genre), sum(Gross))) + geom_line()
Run Code Online (Sandbox Code Playgroud)

但无济于事.

r summarization ggplot2

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

r ×10

ggplot2 ×9

bar-chart ×1

geom-bar ×1

levels ×1

sorting ×1

summarization ×1