当角度在 45 到 90 之间时,如何更正 x 轴文本的位置?

Posted

技术标签:

【中文标题】当角度在 45 到 90 之间时,如何更正 x 轴文本的位置?【英文标题】:how to correct x axis text placement when the angle is between 45 and 90? 【发布时间】:2019-11-09 18:53:45 【问题描述】:

我很难理解 ggplot 的 axis.text.x 的交互:anglehjustvjust。当角度在 0 到 45 之间时,我读过的所有内容都有效,但不适用于角度 > 45 和

下面是一个最小的可重现示例:

library(ggplot2)   
p <- ggplot(mtcars, aes(1000 * mpg, hp)) +
      geom_point()

angle = 90 的第一个图看起来符合预期,

p + theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5))

但是,与上图相比,当角度仅减少 1 度时(从 angle = 90angle = 89),轴标签会向下移动。

p + theme(axis.text.x = element_text(angle = 89, hjust = 1, vjust = 0.5))

任何见解都值得赞赏。

【问题讨论】:

您能添加当前和预期输出的图片吗? 试试看这个问题:***.com/questions/1330989/… 如果只使用vjust = 0.5,事情看起来还不错,但我无法弄清楚hjust 在您的第二种情况下所做的逻辑。 【参考方案1】:

尝试同时指定vjust = 0.5hjust = 0.5 即可避免此问题。

ggplot(mtcars, aes(x = 1000*mpg, y = hp)) +
geom_point() +
theme(
axis.text.x = element_text(angle = 75, vjust = .5, hjust = .5)
)

【讨论】:

以上是关于当角度在 45 到 90 之间时,如何更正 x 轴文本的位置?的主要内容,如果未能解决你的问题,请参考以下文章

当矢量速度和检测点之间的角度为90°时,旁路/避免障碍物

Highcharts3.0.1 在导出报表时,如何解决X轴日期显示过多而出现重叠的问题

glRotatef() - 如何在多轴上应用旋转?

围绕 X 或 Y 轴旋转的两层视图

matlab 前轮前驱运动模型公式 和 轨迹仿真

从极坐标变换角度