我的X轴标签太长,所以我用xlab(expression(atop(paste("Hello world"^"TM ", ":Hi"),paste("hello again"^"TM",": Hi"))))
将它分成两行。行间距太大,我应用方法axis.title.x=element_text(lineheight=0.2)
来改变行间距,但它没有改变任何东西。该方法改编自here。我的问题是如何更改xlab的行间距。提前谢谢!
答案 0 :(得分:1)
要完美地居中所有(\n
不会这样做),保持每段文字的大小不同,无论行数是多少,同时能够调整行间距,请改用:< / p>
xlab(expression(atop(textstyle("whateverline1"),atop(textstyle("whateverline2"),atop(scriptscriptstyle(""),textstyle("whateverline3"))))))
然后使用labeller=label_parsed
这也适用于facet_grid
,title
和ylab
注意atop
和textstyle
定位文本,同时保持文本大小相同,scriptscriptstyle("")
控制文本行之间的间距。您还可以根据自己的需要使用scriptstyle
或scriptscriptstyle
使用不同的相对大小的文字,当然也可以在主题部分使用axis.title.x=element_text(size=whatevernumber)
答案 1 :(得分:1)
Endpoint=sb://abc.servicebus.windows.net/;SharedAccessKeyName=allow;SharedAccessKey=abcd=;EntityPath=abc
调用的解决方案如here所述,每次我们调用val customEventhubParameters = EventHubsConf(connStr).setMaxEventsPerTrigger(maxEventTrigger)
val incomingStream = spark.readStream.format("eventhubs").options(customEventhubParameters.toMap).load();
logger.info("Data has been fetched from event hub successfully");
val messages = incomingStream.withColumn("Offset", $"offset".cast(LongType)).withColumn("Time (readable)", $"enqueuedTime".cast(TimestampType)).withColumn("Timestamp", $"enqueuedTime".cast(LongType)).withColumn("Body", $"body".cast(StringType)).select("Offset", "Time (readable)", "Timestamp", "Body")
implicit val formats = DefaultFormats;
val ob = new EventhubMaster();
时,文本都会变小,但行之间的间距也会变小。
因此,对于您的两行示例,我们可以调用两次atop
,这将强制3行,但是我们将第一行设置为空,以便下一个atop()
将文本绘制得更小,并且之间的间距也较小线。然后,我们调整atop()
中标题的文本大小和边距:
在这里说明了问题-应该缩小两行之间的距离。
atop
建议的解决方案,其中包含两个theme
调用:
library(ggplot2)
p <- ggplot(mtcars, aes(mpg, disp)) + geom_point()
# Your usual atop call
label_1 <- expression(atop(x = paste("Hello world"^"TM ", ": Hi"),
y = paste("hello again"^"TM ", ": Hi")))
p + xlab(label_1)
atop
另一种方法是两次致电
# Trick with two atop calls
label_2 <- expression(atop(x = "", # Empty first line might do the trick
y = atop(x = paste("Hello world"^"TM ", ": Hi"),
y = paste("hello again"^"TM ", ": Hi"))))
# Since the second atop forces smaller text (and also smaller gap between
# lines), then we need to increase the text manually with axis.title.x in
# theme(). Also adjust the top margin of the title since the first line is
# empty but still takes space.
p + xlab(label_2) +
theme(axis.title.x = element_text(size = 15,
margin = margin(t = -2, r = 0, b = 0, l = 0,
unit = "mm")))
(在this讨论中建议)。再次,我们需要微调自定义两行轴标题的位置和空间。
我对这种方法以及ggplot2 two-line label with expression中的cowplot::draw_label
进行了更多说明。
cowplot::draw_label
由reprex package(v0.2.1)于2019-01-14创建