【发布时间】:2019-11-08 00:10:35
【问题描述】:
我想在一张图表中比较两个数据集(以太坊价格和交易量)。我绘制了一个图表,但我认为 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"))
出现以下错误:
Error in seq.int(0, to0 - from, by) : 'to' must be a finite number
数据如下所示(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
剧情如下:
有人知道可能出了什么问题吗?
我对每一个提示都很满意!:)
马尼亚克
/代码更新
【问题讨论】:
-
嗨,在这部分
geom_line(data=transaction_volume,aes(color="transaction_volume")),您是否需要在aes中传递 x 和 y 参数以便 geom_line 知道要绘制什么?还是这些参数与 ETH 价格数据集中的参数相同? (不确定是否相关) -
您好,谢谢您的快速回复! x 和 y 参数的数据在这两种情况下都是“Date.UTC”。和“价值” - 我应该为 transaction_volume 重复它吗?我认为一开始就定义它就足够了?我收到一条错误消息:geom_path:每个组仅包含一个观察值。需要调整群体审美吗?
-
我会尝试根据变量
Value的范围使用具有不同值的ylim(...)。 -
谢谢,但老实说,我不知道如何用我提到的两个数据集实现 ylim!数据集中有 3000 多个对象。
-
重置数据源时,需要指定x和y美学。您可以首先将您的数据帧组合成一个单独的帧,然后 ggplot 将知道要查找的内容。或者为第二行指定 x 和 y。如果您可以发布数据集的 bot 示例,您将获得更好的帮助,尤其是采用一种让人们可以轻松读入系统的格式。