R 如何从ggplot2的两列中绘制两个变量(相同单位%)?

R 如何从ggplot2的两列中绘制两个变量(相同单位%)?,r,ggplot2,R,Ggplot2,我有一个csv表格,其中有三列我想用R中的ggplot2绘制成线图。 x轴上的变量将引用列“日期输出”中的数据,y轴上的两个变量将分别引用列“百分比输入”和“百分比输出”。请注意,“输入百分比”和“输出百分比”完全是两列,而不是一列的数据,它们具有不同的分组类型。 谁能给我一些关于R代码的提示吗?库(ggplot2) library(ggplot2) library(reshape2) tbl <- read.csv('table.csv') tbl$DATE_Out <- a

我有一个csv表格,其中有三列我想用R中的ggplot2绘制成线图。 x轴上的变量将引用列“日期输出”中的数据,y轴上的两个变量将分别引用列“百分比输入”和“百分比输出”。请注意,“输入百分比”和“输出百分比”完全是两列,而不是一列的数据,它们具有不同的分组类型。

谁能给我一些关于R代码的提示吗?

库(ggplot2)
library(ggplot2)
library(reshape2)

tbl <- read.csv('table.csv')

tbl$DATE_Out <- as.Date(tbl$DATE_Out, format = '%m/%d/%Y')
tbl <- melt(tbl, id.vars = 'DATE_Out')

plt <- ggplot(data = tbl, aes(x = DATE_Out, y = value))
plt <- plt + geom_path(aes(colour=tbl$variable))
plt + theme_minimal() + theme(legend.title=element_blank())
图书馆(E2)
tbltidyr软件包提供了收集功能,该功能旨在完成这类工作

library(dplyr)
library(tidyr)

View(iris)

iris %>%
  gather('Measurment','Value',Sepal.Length,Sepal.Width) %>%
  View

我更喜欢tidyr,因为对我来说,功能更清晰,功能更通用。例如,不必将所有变量指定为melt中的i.d.变量,我只需指定希望收集在一起的变量即可。在我的大多数数据集中,这是一种更小、更干净的编码方式。(请参阅dplyr::select的帮助页面,了解选择使用哪些列的方法的更多详细信息)

考虑将日期转换为POSIXct时间格式,然后使用
重塑2
将整个内容融合,并使用
几何路径()或
几何线()绘制一个折线图
颜色设置为数据框中的组列。;)欢迎来到堆栈溢出!您能否通过共享您的数据样本使您的问题重现,以便其他人能够提供帮助(请不要使用
str()
head()
或屏幕截图)?您可以使用和包来帮助您实现这一点。另请参见&Hi,应用代码后,它向我返回如下消息:错误:美学长度必须为1或与数据(2496)相同:颜色,x,y。你知道这是什么原因吗?很难说没有看到你融化的数据框,包括它的列类,也没有看到你的绘图代码。我冒昧地猜测,在重命名列的过程中,某个时候出现了混淆(看起来确实是您重命名了它们)。请记住,代码的绘图部分指的是融化数据框中的ColName(因为这是输入到
ggplot()
),而不是原始数据框中的ColName。我使用的预融化数据框有3列(
Date
numeric
numeric
)ggplot(data=tbl,aes)(x=DATE\u Out,y=value,group=variable))---需要是这样的。ThanksHow,那么,你会建议在y轴上缩放两个变量吗?我发现如果你绘制所有数据(熔化后几乎616行),如果没有适当的y缩放,整个图形会变得非常压缩和丑陋。