【问题标题】:Changing scales and symbols in R plot更改 R 图中的比例和符号
【发布时间】:2016-01-23 05:59:12
【问题描述】:

我在一个图中绘制了两个 4X10 矩阵 d1 和 d2 的行,如下所示:

plot(as.matrix(d1[2,]), as.matrix(d2[2,]), type="o", col="red", ann=FALSE) +
lines(as.matrix(d1[1,]),as.matrix(d2[1,]), type="o", col="blue", ann=FALSE)

这会产生以下情节:

现在我想做一些迄今为止我未能做到的改变:

1) 将 y 轴更改为对数刻度。我在 plot 函数中找不到 scale_y_log 类型的东西(存在于 ggplot 中)。

2) 将每个线图的数据点符号更改为不同的(目前它们都是圆形)。我试图传递 par 参数的 pch,但这会改变所有行的内容。

3) 将我自己的间隔强制为 x 轴。例如,将 0,2,4,6,8 改为 0,0.5,1.5,2,3,4,5,10。我试图找到类似于 ggplot scale_x_continuous( break=c(0,0.5,1.5,2, 3, 4, 5, 10)),但是什么都没找到。

【问题讨论】:

    标签: r plot


    【解决方案1】:

    这是一个您可以根据自己的数据进行调整的示例

    x_axis_labels <- c(0,0.5,1.5,2, 3, 4, 5, 10.)      # The x-axis labels you provided
    plot(1:10, exp(c(1:10)), log = 'y', pch = 24)      # Plot of sample data, making y-axis log scale, and change points to triangles.
    axis(1,labels = x_axis_labels, at = x_axis_labels) # Changing the x-axis labels
    

    上面没有使用矩阵,但是,您遇到的一些主要问题似乎是 log 绘图和更改点类型。

    【讨论】:

    • 谢谢。该情节不反映新标签。有没有办法在缩放时使用 log10 而不是 loge?
    • @user3639557 我解决了这个问题,我上传了错误的 jpeg。现在应该解决这个问题。无论您使用的是log(x, base = exp(1)) 还是log(x, base = 10),y 值只会相差一个常数。你在寻找什么输出?如果您改用 plot(x, 10^c(1:10), log = 'y', pch = 24),您会看到 y 轴值发生变化,但数据形状保持不变。
    猜你喜欢
    • 2019-02-02
    • 2016-04-25
    • 1970-01-01
    • 2015-07-02
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    相关资源
    最近更新 更多