【问题标题】:Can I rotate a graph and plot it on the y axis?我可以旋转图表并将其绘制在 y 轴上吗?
【发布时间】:2017-04-20 08:06:26
【问题描述】:

我想在图表上绘制我的点,然后同时在 x 轴和 y 轴上显示密度分布。 我可以在 x 轴上做,但不能在 y 轴上做。

par(mfrow=c(1,1))
plot(rnorm(100))
par(new=TRUE)
plot(density(rnorm(100,10,123)), ann = FALSE, xlab = "", ylab ="",xaxt='n', yaxt='n')

par(new=TRUE)
plot(density(rnorm(100, 10,12)), col = "red", ann = FALSE, xlab = "", ylab ="",xaxt='n', yaxt='n')

【问题讨论】:

  • 我试过这个:par(mfrow=c(1,1), bg = "white") plot(rnorm(100)) par(new=TRUE) plot(density(rnorm(100,10,123)), ann = FALSE, xlab = "", ylab ="",xaxt='n', yaxt='n') d = density(rnorm(100, 10,12)) par(new=TRUE, bg=NA) plot(d$y,d$x, type = "l", col = "red", ann = FALSE, xlab = "", ylab ="",xaxt='n', yaxt='n', bty='n),但它没有打印它下面的图表......

标签: r plot kernel-density


【解决方案1】:

没有理由你不能。

set.seed(0)
d1 <- density(rnorm(100, 10, 123))
d2 <- density(rnorm(100, 10, 130))

## shared x, y, range / limit
xlim <- c(min(d1$x[1], d2$x[1]), max(d1$x[512], d2$x[512]))  ## default: n = 512
ylim <- c(0, max(d1$y, d2$y))

## conventional plot
plot(d1$x, d1$y, type = "l", xlim = xlim, ylim = ylim)
lines(d2$x, d2$y, col = 2)

## rotated plot
plot(d1$y, d1$x, type = "l", xlim = ylim, ylim = xlim)
lines(d2$y, d2$x, col = 2)

备注:

  1. 从不使用par(new = TRUE);自己设置xlimylim
  2. 自定义带有标题的绘图,轴显示自己。

【讨论】:

  • 但我想同时绘制点。重点应该放在点上。与我必须将限制设置为超大的点相比,密度分布的比例非常大
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
  • 1970-01-01
  • 2020-11-12
  • 1970-01-01
  • 1970-01-01
  • 2017-02-14
  • 1970-01-01
相关资源
最近更新 更多