【问题标题】:R - ggplot2 change x-axis values to non-log valuesR - ggplot2 将 x 轴值更改为非对数值
【发布时间】:2016-02-08 04:25:58
【问题描述】:

我正在绘制一些支付分布信息,并在将其缩放到对数正态(base-e)后汇总数据。直方图效果很好,但我想修改 x 轴以显示非对数等效项。

我当前的坐标轴显示 [0:2.5:10] 值 或者,我想查看 exp(2.5)、exp(5) 等的值。

关于如何完成此任务的任何建议?我可以在绘图语句中添加什么来缩放 x 轴值吗?也许有更好的方法 - 想法?

当前代码:

ggplot(plotData, aes_string(pay, fill = pt)) + geom_histogram(bins = 50) + facet_wrap(~M_P)

回答...最终情节:

【问题讨论】:

  • 如果您对数据取幂然​​后对 x 轴进行对数缩放,这是否可以解决?
  • @josliber 应用“+scale_x_log10()”是有限制的。如果您想使用使用不同对数基数的分布进行扩展怎么办?
  • @NikolayRodionov 如果您查看scale_x_log10 的文档,您会发现它只是一个便利函数,带有一个特定的trans 参数到scale_x_continuous。您可以使用任何您想要的转换 - 任何底数的对数,或任何其他值。
  • @Gregor 你的权利,谢谢。不过仍然遇到同样的问题——如果我使用 scale_x_log10() ,x 轴值仍然是 1 到 10。有什么方法可以将 x 值更改为 10^x 等价物?我的目标是在保持日志分组的同时保留原始轴值标签。

标签: r ggplot2 axis


【解决方案1】:

不确定这是否正是您所追求的,但您可以使用 scale_x_continuous 将 x 轴标签的文本更改为您想要的任何内容。

这里没有:

ggplot(data = cars) + geom_histogram(aes(x = speed), binwidth = 1)

这里是:

ggplot(data = cars) + geom_histogram(aes(x = speed), binwidth = 1) +
  scale_x_continuous(breaks=c(5,10,15,20,25), labels=c(exp(5), exp(10), exp(15), exp(20), exp(25)))

【讨论】:

  • 完美!效果很好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-07-12
  • 1970-01-01
  • 2020-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-16
相关资源
最近更新 更多