这里是我的问题,我有这样如何根据R中的X值绘制两个Y轴?
A B C D
a 24 1 2 3
b 26 2 3 1
c 25 3 1 2
数据现在我想要绘制在Y轴(0〜30)和B〜d在另一个Y轴在(0至5)一张图。此外,我想a,b,c行有一条线将它们连接在一起(可以说a,b,c代表鼠标ID)。任何人都可以想出如何做到这一点的想法?我更喜欢使用R.预先感谢!
这里是我的问题,我有这样如何根据R中的X值绘制两个Y轴?
A B C D
a 24 1 2 3
b 26 2 3 1
c 25 3 1 2
数据现在我想要绘制在Y轴(0〜30)和B〜d在另一个Y轴在(0至5)一张图。此外,我想a,b,c行有一条线将它们连接在一起(可以说a,b,c代表鼠标ID)。任何人都可以想出如何做到这一点的想法?我更喜欢使用R.预先感谢!
# create some data
data = as.data.frame(list(A = c(24,26,25),
B = c(1,2,3),
C = c(2,3,1),
D = c(3,1,2)))
# adjust your margins to allow room for your second axis
par(mar=c(5, 4, 4, 4) + 0.1)
# create your first plot
plot(1:3,data$A,pch = 19,ylab = "1st ylab",xlab="index")
# set par to new so you dont' overwrite your current plot
par(new=T)
# set axes = F, set your ylim and remove your labels
plot(1:3,data$B,ylim = c(0,5), pch = 19, col = 2,
xlab="", ylab="",axes = F)
# add your points
points(1:3,data$C,pch = 19,col = 3)
points(1:3,data$D, pch = 19,col = 4)
# set the placement for your axis and add text
axis(4, ylim=c(0,5))
mtext("2nd ylab",side=4,line=2.5)
谢谢,这是不正是我的意思。对不起,混乱,说我们有一个鼠标的体重是25克,我想显示重量百分比的变化(第1天1%,第4天2%等),我明白,我可以设置所有的鼠标到第0天为100%,但我也想包括他们的初始体重,这与每只小鼠不同。这有道理吗?该eaiser方法是一天绘制自己的体重一天,但我只是想知道,如果有这样的方案在R. –
我明白你的意思。你有没有考虑过只给原始鼠标添加一个图例?这样,您可以将体重变化%添加到情节。如果您在图例中有初始权重并且只绘制了%,那么您的图形更有可能被标准化(例如,所有值为+/- 10%),而如果您有两只体重差异很大的小鼠(例如小鼠1 = 20克和老鼠2 = 50克) – anotherFishGuy
@Ranalysis,这也有效,我实际上做了你刚才说的话,只是发布这个看看是否有其他方法。谢谢。 –
我非常喜欢使用ggplot2
用于绘图。不幸的是,ggplot2
不支持这个for philosophical reasons。
我想提出其使用方面的替代,即次要情节。请注意,为了能够使用ggplot2
绘制数据,我们需要更改数据结构。我们使用tidyr
包中的gather
来执行此操作。另外,我用在dplyr
定义的编程风格(使用管道很多):
library(ggplot2)
library(dplyr)
library(tidyr)
df = data.frame(A = c(24, 26, 25), B = 1:3, C = c(2, 3, 1), D = c(3, 1, 2))
plot_data = df %>% mutate(x_value = rownames(df)) %>% gather(variable, value, -x_value)
ggplot(plot_data) + geom_line(aes(x = x_value, y = value, group = variable)) +
facet_wrap(~ variable, scales = 'free_y')
在这里,每个子图有它自己的y轴。
嗨保罗,谢谢。这是。我们可以说,绘制一个列内的每个点,我需要的是绘制每一个点。也就是说,如何把25,1,2,3放在一个图中,其中25属于一个轴,1,2,3属于另一个。 –
我不知道你用的意思,B,C行有一个线将它们连接在一起,但如果你对你的意义扩大 – anotherFishGuy
尝试绘制图像,也许会我可以调整下面的代码更好地解释您的需求 – m02ph3u5
在双轴图中,读者/观察者如何知道哪个轴应与哪个数据点一起使用? – Heroka