首页 > 解决方案 > 如何制作梯形图?

问题描述

请问您如何在R中制作梯形图。这是一个数据示例:

d <- data.frame("Subject" = 1:10,
                        "Group" = c(rep(1, 6), rep(2, 4)),
                        "Gender" = c(rep("male" ,2), rep("female", 6), rep("male", 2)),
                        "Y1" = rnorm(10, 100, 30),
                        "Y2" = rnorm(10, 3000, 1000))

在这个梯形图中:

关于包 plotrix 有一些东西,但我似乎无法找到详细信息。

标签: rplot

解决方案


感谢威比斯利的意见!这很有帮助。但是,我使用以下代码来生成我的结果。

# Melt dataset for plot:
library(reshape)
melted_data<-melt(d, id.vars=c("Subject","Group","Sex"),measure.vars= c("Y1","Y2"))
melted_data$Group<-as.factor(melted_data$Group)


# calcuate R2 per Group and Sex combination
require(plyr)
func <- function(xx)
{  return(data.frame(R2 = round (cor(xx$Y1, xx$Y2),6)))}
CorrDataset<-ddply(d, .(Group,Sex), func)


# plot:
library(gridExtra)
library(ggplot2)
set.seed(1)

p <-ggplot(melted_data, aes(x=variable, y=value, group=Subject, linetype=Group, color=Sex)) +
  geom_line(size=1)
#p <- p + scale_y_continuous(sec.axis = sec_axis(~ scale(.), name = "Y2"))
p+theme(legend.position="top",
        axis.line.x = element_line(color="black", size = 2),
        axis.line.y = element_line(color="black", size = 2),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.border = element_blank(),
        panel.background = element_blank())+
  annotation_custom(tableGrob(CorrDataset,rows = rownames(CorrDataset)),  ymin=4000, ymax=4000) 

在此处输入图像描述

请注意:对于第二个 Y 轴,它在上面的代码中被注释掉了。


推荐阅读