向 Y 轴添加单位
Add units to Y axes
我正在使用 plotrix.twoord
使用此代码比较单个图中的两个图:
library(plotrix)
mempool<-read.csv("mempool-size.csv")
mempool$date <- as.Date(mempool$date)
fees<-read.csv("transaction-fees.csv")
fees$date <- as.Date(fees$date)
twoord.plot(mempool$date,mempool$value,fees$date,fees$value,type="b",
ylab="Unconfirmed transactions (B)",rylab="Fees paid per day (BTC)",
main="Fees and mempool size since 2017",
)
这会打印出这样的图形:
Plot
这看起来几乎是正确的,但左边的轴看起来有点奇怪。我希望它在值之后显示单位 (B) - 最好使用公制前缀而不是科学记数法(20MB 而不是 2e07B)。
我不确定 plotrix.twoord 是否提供了这样的选项,所以我尝试改用 ggplot:
ggplot() +
geom_line(data=fees, aes(x=date, y=value), color='black') +
geom_line(data=mempool, aes(x=date, y=value), color='red')
但是现在费用线是平的,因为它没有自己的轴。
如果你想自己尝试一下,可以在这里找到数据:
http://www.sharecsv.com/s/07076796191d9e414e5b50840d9ed7ad/mempool-size.csv
http://www.sharecsv.com/s/72a183dd3ab0df781eacbfee81999548/transaction-fees.csv
Plotrix 似乎不支持自己提供的刻度标记标签,有几种解决方法。
1) 最简单的方法是将左轴值除以 10^6
mempool$value <- mempool$value / 1000000
twoord.plot(mempool$date,mempool$value,fees$date,fees$value,type="b",
ylab="Unconfirmed transactions (MB)",rylab="Fees paid per day (BTC)",
main="Fees and mempool size since 2017",
)
2) 您可以在没有 plotrix 的情况下使用 base R,例如
plot(mempool$date,mempool$value, type='b',ylab="Unconfirmed transactions", yaxt='n',xlab='Date')
axis(2, c('0MB', '20MB', '40MB', '60MB', '80MB', '100MB', '120MB', '140MB'), at=seq(0, 140*10^6, length.out=8))
par(new=TRUE)
plot(fees$date,fees$value,type="b",col="red",xaxt="n",yaxt="n",xlab="", ylab='')
axis(4)
mtext("Fees paid",side=4,line=3)
3) 您可以破解 twoord.plot 函数以删除其中一个轴,然后像上面的选项 2) 一样在之后添加它。有关详细信息,请参阅
我正在使用 plotrix.twoord
使用此代码比较单个图中的两个图:
library(plotrix)
mempool<-read.csv("mempool-size.csv")
mempool$date <- as.Date(mempool$date)
fees<-read.csv("transaction-fees.csv")
fees$date <- as.Date(fees$date)
twoord.plot(mempool$date,mempool$value,fees$date,fees$value,type="b",
ylab="Unconfirmed transactions (B)",rylab="Fees paid per day (BTC)",
main="Fees and mempool size since 2017",
)
这会打印出这样的图形:
Plot
这看起来几乎是正确的,但左边的轴看起来有点奇怪。我希望它在值之后显示单位 (B) - 最好使用公制前缀而不是科学记数法(20MB 而不是 2e07B)。
我不确定 plotrix.twoord 是否提供了这样的选项,所以我尝试改用 ggplot:
ggplot() +
geom_line(data=fees, aes(x=date, y=value), color='black') +
geom_line(data=mempool, aes(x=date, y=value), color='red')
但是现在费用线是平的,因为它没有自己的轴。
如果你想自己尝试一下,可以在这里找到数据: http://www.sharecsv.com/s/07076796191d9e414e5b50840d9ed7ad/mempool-size.csv http://www.sharecsv.com/s/72a183dd3ab0df781eacbfee81999548/transaction-fees.csv
Plotrix 似乎不支持自己提供的刻度标记标签,有几种解决方法。
1) 最简单的方法是将左轴值除以 10^6
mempool$value <- mempool$value / 1000000
twoord.plot(mempool$date,mempool$value,fees$date,fees$value,type="b",
ylab="Unconfirmed transactions (MB)",rylab="Fees paid per day (BTC)",
main="Fees and mempool size since 2017",
)
2) 您可以在没有 plotrix 的情况下使用 base R,例如
plot(mempool$date,mempool$value, type='b',ylab="Unconfirmed transactions", yaxt='n',xlab='Date')
axis(2, c('0MB', '20MB', '40MB', '60MB', '80MB', '100MB', '120MB', '140MB'), at=seq(0, 140*10^6, length.out=8))
par(new=TRUE)
plot(fees$date,fees$value,type="b",col="red",xaxt="n",yaxt="n",xlab="", ylab='')
axis(4)
mtext("Fees paid",side=4,line=3)
3) 您可以破解 twoord.plot 函数以删除其中一个轴,然后像上面的选项 2) 一样在之后添加它。有关详细信息,请参阅