想要绘制显示每个列的堆叠或不同方面
want to plot stacked or different facets showing each of the column
在 R 程序中,我想绘制堆积条形图或显示与列数一样多的小平面的图。
对于堆积条形图,我在 excel 中有此数据,在 Table 1:
中给出
Table 1
下面是绘制堆积条形图的代码:
x3<- read.xlsx("D:\R\phenology.xlsx", sheet = 1)
x1=x3$Years
print(x1)
df <-data.frame(Years = x3$Years,
PI = x3$`Panicle.initiation.days.(Days)`,
AD= x3$`Anthesis.days.(Days)`,
MD = x3$`Maturity.days.(Days)`)
print(df)
Phenology <-data.frame(PI = x3$`Panicle.initiation.days.(Days)`,
AD= x3$`Anthesis.days.(Days)`,
MD = x3$`Maturity.days.(Days)`)
print(Phenology)
ggplot(data = df, aes(x= Years, y = Phenology)) +
geom_bar(stat='identity', col = "green")
***对于具有列数的各个方面,我正在使用此代码":
ggplot(data = df, aes(x= Years, y = Phenology,fill = PI & AD & MD))
+geom_bar() + facet_grid(~PI & AD & MD)
如果我能得到解决 R 中这两个代码问题的建议,那将会很有帮助。
更新:
首先,重要的是将您的数据以长格式保存!
由于不同的原因而不是这个问题的范围,这很重要:
您可以使用 pivot_longer
执行此操作。如果您没有确定 names_to
和 values_to
,您将获得 name
和 value
作为默认列名称。
https://tidyr.tidyverse.org/reference/pivot_longer.html
例如你可以做
df %>%
pivot_longer(
-Years # the column not to reshaped
names_to = "my desired column name",
values_to = "my desired value name"
)...
library(tidyverse)
df %>%
pivot_longer(
-Years
) %>%
ggplot(aes(x=factor(Years), y=value, fill=name))+
geom_col()
在 R 程序中,我想绘制堆积条形图或显示与列数一样多的小平面的图。
对于堆积条形图,我在 excel 中有此数据,在 Table 1:
中给出Table 1
下面是绘制堆积条形图的代码:
x3<- read.xlsx("D:\R\phenology.xlsx", sheet = 1)
x1=x3$Years
print(x1)
df <-data.frame(Years = x3$Years,
PI = x3$`Panicle.initiation.days.(Days)`,
AD= x3$`Anthesis.days.(Days)`,
MD = x3$`Maturity.days.(Days)`)
print(df)
Phenology <-data.frame(PI = x3$`Panicle.initiation.days.(Days)`,
AD= x3$`Anthesis.days.(Days)`,
MD = x3$`Maturity.days.(Days)`)
print(Phenology)
ggplot(data = df, aes(x= Years, y = Phenology)) +
geom_bar(stat='identity', col = "green")
***对于具有列数的各个方面,我正在使用此代码":
ggplot(data = df, aes(x= Years, y = Phenology,fill = PI & AD & MD))
+geom_bar() + facet_grid(~PI & AD & MD)
如果我能得到解决 R 中这两个代码问题的建议,那将会很有帮助。
更新:
首先,重要的是将您的数据以长格式保存! 由于不同的原因而不是这个问题的范围,这很重要:
您可以使用 pivot_longer
执行此操作。如果您没有确定 names_to
和 values_to
,您将获得 name
和 value
作为默认列名称。
https://tidyr.tidyverse.org/reference/pivot_longer.html
例如你可以做
df %>%
pivot_longer(
-Years # the column not to reshaped
names_to = "my desired column name",
values_to = "my desired value name"
)...
library(tidyverse)
df %>%
pivot_longer(
-Years
) %>%
ggplot(aes(x=factor(Years), y=value, fill=name))+
geom_col()