如何在R中使用ggplot2呈现多个图作为两组图的成员[关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在R中使用ggplot2呈现多个图作为两组图的成员[关闭]相关的知识,希望对你有一定的参考价值。
假设我有这个数据框:
Patient Test1 Test2 Test3 Disease
1 10 12 10 no
2 12 2 13 yes
3 15 15 18 yes
4 8 9 10 no
5 7 8 7 no
现在我想创建一个这个数据的图。患者1,4和5的线应全部为蓝色,其余应为红色。
这是我当时正在寻找的最佳答案:
library(reshape2)
library(ggplot2)
mydata <- read.delim("test.txt")
m_mydata <- melt(mydata,id=c("Patient","Disease"))
ggplot(m_mydata, aes(x = variable, y = value, group = Patient, colour = Disease)) +
geom_line() + scale_color_manual(values=c("blue", "red"))
答案
首先,您需要将数据从短格式转换为长格式:
library(reshape2)
library(tidyverse)
df %>%
melt(id.vars = c("Patient", "Disease")) %>%
rename(Tests = variable,
Values = value)
Patient Disease Tests Values
1 1 0 Test1 10
2 2 1 Test1 12
3 3 1 Test1 15
4 4 0 Test1 8
5 5 0 Test1 7
6 1 0 Test2 12
7 2 1 Test2 12
8 3 1 Test2 15
9 4 0 Test2 9
在此步骤之后,您可以绘制它,X轴用Test1,Test2,...,Test1000和Y轴表示,并带有相应的值。此外,它根据患者分组:
df %>%
melt(id.vars = c("Patient", "Disease")) %>%
rename(Tests = variable,
Values = value) %>%
ggplot(aes(x = Tests, y = Values, color = as.factor(Disease))) +
geom_line(aes(group = as.factor(Patient))) + scale_color_manual(values=c("#000000", "#ff000c"))
另一答案
我正在寻找的答案是:
ggplot(dataframe, aes(test,value, colour = disease)) +
geom_line(aes(group = as.factor(patient)))
以上是关于如何在R中使用ggplot2呈现多个图作为两组图的成员[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式在 Fabric.js 呈现的一组图像中选择一个图像
R语言ggplot2可视化:使用plotly包的subplot函数将多个ggplot2可视化结果组合在一起形成组合plotly图(Multiple ggplot2 plots with plotly)
在 R 中使用带有 facet_wrap 的 ggplot2 显示多个轴标签
R语言ggplot2可视化:使用purrr包的map函数基于嵌套的dataframe数据绘制多个可视化图像(包含3个子图)
R语言ggplot2可视化:使用purrr包的map函数基于嵌套的dataframe数据绘制多个可视化图像(包含2个子图)