R:轴刻度标签来自数组的动态上标
R: Axis tick labels Dynamic superscripting from an array
我正在尝试在 R 中为 ggplot2 生成带有上标的轴刻度。我想要一个类似于这样的情节:
Plot from python
但是我能做的看起来像这样:Plot using ggplot2 R
注意轴在 y 轴上刻度。 python 有 102, 104, 106 我想要用 R 创建但是
使用我的代码我无法这样做。
+scale_y_continuous(labels = function(x){return (paste("10^", x,sep = ""))})
我使用这段代码在 R 图中创建了标签。即 10^2、10^4、10^6 等。
我尝试使用函数表达式及其在不同论坛上可用的所有变体:
+scale_y_continuous(labels = function(x){return (expression(10^x))}
但它们都产生相同的输出,即 10x、10x、10x 在所有刻度上。表达式函数不理解字符和变量之间的区别。
我究竟如何完成 102、104、106无需为每个刻度手动设置值。由于我的代码使用值数组生成刻度标签,因此我无法手动执行此操作。我一次生成了数百个图,所以我需要通过读取 y 轴值并相应地转换它们来动态地完成它。
我不想更改号码的格式。我的数组已经计算出 log(x) 值,我只想在它后面添加一个 10 并使其成为上标。 使用 scientific_format 更改格式不是我正在寻找的解决方案,因为我想要一种可以将文本更改为 102 形式的方法。 我想添加标签而不对数据应用任何更改。
我认为scale_y_continuous(labels = math_format(10^.x))
是你想要的:
library(scales); library(ggplot2)
a <- ggplot(iris, aes(x=Sepal.Length, y=Petal.Length)) + geom_point() # Left (to compare)
b <- a + scale_y_continuous(labels = math_format(10^.x)) # Middle
c <- b + annotation_logticks(side="l") # Right
# (Note; "10^.x" is default value, so it is omissible.)
print(a); print(b); print(c)
我正在尝试在 R 中为 ggplot2 生成带有上标的轴刻度。我想要一个类似于这样的情节: Plot from python
但是我能做的看起来像这样:Plot using ggplot2 R
注意轴在 y 轴上刻度。 python 有 102, 104, 106 我想要用 R 创建但是 使用我的代码我无法这样做。
+scale_y_continuous(labels = function(x){return (paste("10^", x,sep = ""))})
我使用这段代码在 R 图中创建了标签。即 10^2、10^4、10^6 等。 我尝试使用函数表达式及其在不同论坛上可用的所有变体:
+scale_y_continuous(labels = function(x){return (expression(10^x))}
但它们都产生相同的输出,即 10x、10x、10x 在所有刻度上。表达式函数不理解字符和变量之间的区别。
我究竟如何完成 102、104、106无需为每个刻度手动设置值。由于我的代码使用值数组生成刻度标签,因此我无法手动执行此操作。我一次生成了数百个图,所以我需要通过读取 y 轴值并相应地转换它们来动态地完成它。
我不想更改号码的格式。我的数组已经计算出 log(x) 值,我只想在它后面添加一个 10 并使其成为上标。 使用 scientific_format 更改格式不是我正在寻找的解决方案,因为我想要一种可以将文本更改为 102 形式的方法。 我想添加标签而不对数据应用任何更改。
我认为scale_y_continuous(labels = math_format(10^.x))
是你想要的:
library(scales); library(ggplot2)
a <- ggplot(iris, aes(x=Sepal.Length, y=Petal.Length)) + geom_point() # Left (to compare)
b <- a + scale_y_continuous(labels = math_format(10^.x)) # Middle
c <- b + annotation_logticks(side="l") # Right
# (Note; "10^.x" is default value, so it is omissible.)
print(a); print(b); print(c)