繁体   English   中英

条形图和法线图具有不同的比例

[英]Barplot and normal plot with a different scale

我有以下代码:

par(mfrow = c(1,2))
df <- data.frame(countdata = 10000 * runif(10), Modell1 = 30 * runif(10),Modell2=30 * runif(10))
mp=barplot(df$countdata)
lines(mp,df$Modell1,col="red") #implicitno x = 1:10
points(mp,df$Modell1,col="red")
lines(mp,df$Modell2,col="blue") #implicitno x = 1:10
points(mp,df$Modell2,col="blue")

现在的问题是比例级别不同。 这意味着我在x轴上只有一条直线。 我可以解决此问题,如下所示:

par(mfrow = c(1,2))
df <- data.frame(countdata = 10000 * runif(10), Modell1 = 30 * runif(10),Modell2=30 * runif(10))
mp=barplot(df$countdata)
par(new=TRUE)
plot(mp,df$Modell1,col="red",type="l",axes=FALSE)
points(mp,df$Modell1,col="red",axes=FALSE)
lines(mp,df$Modell2,col="blue",axes=FALSE) #implicitno x = 1:10
points(mp,df$Modell2,col="blue",axes=FALSE)

正如您现在所看到的,图形中的点被挤压了,看起来不太好。 有人可以帮我解决这个问题吗?

顺便说一下,我不想除以或乘以我的数据...(例如Modell1 * 10000)

提前致谢,

法比安

尝试这个。 您可以通过调整ylim解决问题。

plot(df$countdata, col = "gray", ylim = c(0,11000), xlab = "", ylab = "", ty="h", lend="square", lwd=35, axes = F)
par(new = TRUE)
plot(df$Modell1, col="red", ylim = c(0,200), xlab = "", ylab = "", type="o", pch=19, lwd=2, axes = F)
lines(df$Modell2, col="blue", ty="o", pch=19, lwd=2)

它返回,

在此处输入图片说明

这是您要找的东西吗?

library(tidyverse)

df %>% 
  mutate(id = row_number()) %>% 
  ggplot() +
  geom_col(aes(id, countdata)) +
  geom_point(aes(id, Modell1, col = "Modell1")) +
  geom_point(aes(id, Modell2, col = "Modell2")) +
  geom_line(aes(id, Modell1, col = "Modell1")) +
  geom_line(aes(id, Modell2, col = "Modell2")) +
  scale_y_log10() +
  scale_x_continuous(breaks = pretty) +
  labs(color = "Model") +
  theme_minimal()

哪个返回:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM