绘制两个.csv数据集的两个直方图,以比较R中的数据(ggplot)

绘制两个.csv数据集的两个直方图,以比较R中的数据(ggplot),r,ggplot2,R,Ggplot2,我想在一个图中比较两个数据集(以太坊价格和交易量)。我画了一张图,但我认为y轴的比例有问题: ETH_price <- read.table(file = '~/R/export-EtherPrice.csv' , header = T, sep=";") transaction_volume <- read.csv(file = '~/R/export-TxGrowth.csv', header = T, sep=";") head(ETH_price) head(trans

我想在一个图中比较两个数据集(以太坊价格和交易量)。我画了一张图,但我认为y轴的比例有问题:

ETH_price <- read.table(file = '~/R/export-EtherPrice.csv' , header = T, sep=";")

transaction_volume <- read.csv(file = '~/R/export-TxGrowth.csv', header = T, sep=";")

head(ETH_price)

head(transaction_volume)

ETH_price$Date.UTC. <- as.Date(ETH_price$Date.UTC., format = "%m/%d/%Y")

str(ETH_price) # verify the date format

transaction_volume$Date.UTC. <- as.Date(transaction_volume$Date.UTC., format = "%m/%d/%Y") 

str(transaction_volume) # verify the date format

ggplot(ETH_price,aes(x = Date.UTC.,y = Value)) + 
  geom_point()+
  geom_line(aes(color="ETH_price")) +
  geom_line(data=transaction_volume,aes(x = Date.UTC.,y = Value, color="transaction_volume")) +
  labs(color="Legend") +
  scale_colour_manual("", breaks = c("ETH_price", "transaction_volume"),
                      values = c("blue", "brown")) +
  ggtitle("Correlation of ETH price and transaction volume") + 
  theme(plot.title = element_text(lineheight=.7, face="bold"))
数据如下所示(ETH_价格):

情节如下所示:

有人知道什么地方出了问题吗

我对每一个提示都感到高兴!:)

梅尼亚克


/代码已更新

以总结解决问题的所有关键步骤

1) 您必须操纵日期格式,以便按ggplot正确打印

2) 由于您的ETH_价格值和交易量值不在同一比例上,为了将它们绘制在单个图形上,您必须使用@r2evans在本文中描述的技巧:

因此,您的代码应该如下所示:

#我在这里重新创建了数据集的一小部分,仅作为示例
Date.UTC.=c(“2017年3月3日”、“2017年3月4日”、“2017年3月5日”、“2017年3月6日”、“2017年3月7日”、“2017年3月8日”)
值=c(64294587565703170206258955386)
事务量=data.frame(Date.UTC.,Value)
数值=c(19.54,19.45,20.45,22.67,23.34,21.89)
ETH_价格=数据帧(UTC日期,值)
#管理日期格式
ETH_价格$Date.UTC.=截止日期(ETH_价格$Date.UTC.,格式=“%m.%d.%Y”)
交易记录_volume$Date.UTC.=截止日期(交易量$Date.UTC.,格式=“%m.%d.%Y”)
str(ETH_price)#检查数据集的正确格式
str(事务量)#检查数据集的正确格式
#合并数据集
ETH_价格$z=“ETH_价格”
交易量$z=“交易量”
#定义比例因子(可以根据打印的首选项调整此零件)
比例系数=平均值(交易量$Value/ETH价格$Value)
df_temp=in(事务量,{Value=Value/scale_factor})
df=rbind(ETH价格、df温度)
df
#绘制两个数据集
图书馆(GG2)
mycolors=c(“ETH价格”=“蓝色”,“交易量”=“红色”)
ggplot(df,aes(x=Date.UTC.,y=Value,group=z,color=z))+
几何路径()+
geom_线()+
连续缩放(name=“ETH\u price”,sec.axis=sec\u axis(~scale\u factor*,name=“transaction\u volume”))+
缩放颜色手册(name=“dataset”,value=mycolors)+
主题(
axis.title.y=元素文本(颜色=mycolors[“ETH\u price”]),
axis.text.y=element\u text(颜色=mycolors[“ETH\u price”]),
axis.title.y.right=元素文本(颜色=mycolors[“交易量]),
axis.text.y.right=element\u text(颜色=mycolors[“交易量”])
)
因此,您应该得到以下曲线图:


所以,我认为它应该解决你的问题;)

谢谢您的回复

我检查了数据集,发现有一些损坏的行被我扔掉了。现在我有一个非常基本的问题(很抱歉刚刚开始学习R),excel中的数据如下所示:

如果我把它返回到第一列,日期就消失了,因为该列没有日期格式,而是有一个随机数。我刚刚有一个数据集,它在我导入到R的第一列中包含所有数据。我将使用新数据尝试原始代码,当前在R中看起来像这样:

    > head(transaction_volume)

   Date.UTC. UnixTimeStamp Value
1 03.03.2017    1488499200 64294
2 04.03.2017    1488585600 58756
3 05.03.2017    1488672000 57031
4 06.03.2017    1488758400 57020
5 07.03.2017    1488844800 62589
6 08.03.2017    1488931200 55386
如何读入数据,以便R能够以与数据位于.csv的第一列时相同的方式识别数据


很抱歉给您带来麻烦。

您好,在这部分
geom_线(data=transaction_volume,aes(color=“transaction_volume”))
中,您是否需要在
aes
中传递x和y参数,以便geom_线知道要绘制什么?或者这些参数与ETH price数据集中的参数相同?(不确定是否相关)嘿,谢谢你的快速回复!x和y参数的数据在两种情况下都是“Date.UTC.”和“Value”-我是否应该为事务量重复它?我认为一开始就定义它就足够了?我得到一个错误:geom_路径:每组只包含一个观察。您需要调整组美学吗?我会根据变量
值的范围尝试使用不同值的
ylim(…)
。谢谢,但老实说,我不知道如何使用我提到的两个数据集实现ylim!数据集中有3000多个对象。重置数据源时,需要指定x和y方向。您可以首先将数据帧组合成单个帧,然后ggplot将知道要查找什么。或者为第二行指定x和y。如果您可以发布数据集的示例,尤其是以一种让人们可以轻松读入系统的格式发布,您将获得更好的帮助。从Excel中,您是否将数据导出为csv文件?是的,我将其作为csv文件读入:
ETH_price也许您可以试试:
ETH_price很好,这很有效!我以前试过一个稍微不同的版本。不幸的是,现在我仍然得到了群体审美的错误-我不知道在我的原始帖子的代码中包括你的日期格式调整,有什么想法吗?你能编辑你的第一篇帖子以反映你稍微不同的版本吗?然后,我将能够编辑我的代码,向您显示在哪里包括日期格式调整
> head(transaction_volume)

   Date.UTC. UnixTimeStamp Value
1 03.03.2017    1488499200 64294
2 04.03.2017    1488585600 58756
3 05.03.2017    1488672000 57031
4 06.03.2017    1488758400 57020
5 07.03.2017    1488844800 62589
6 08.03.2017    1488931200 55386
    > head(transaction_volume)

   Date.UTC. UnixTimeStamp Value
1 03.03.2017    1488499200 64294
2 04.03.2017    1488585600 58756
3 05.03.2017    1488672000 57031
4 06.03.2017    1488758400 57020
5 07.03.2017    1488844800 62589
6 08.03.2017    1488931200 55386