在 ggplot 中自定义对数转换标签
Customize logtransformed labels in ggplot
嘿,
我创建了一个包含不同类别的条形图。所有类别都在同一尺度上进行测量,但每个类别的价值处于不同的水平。最好是通过 log10 转换 y 比例以显示所有类别。
使用这段代码非常简单:
scale_y_continuous(trans = log10_trans(),
breaks = trans_breaks("log10", function(x) 10^x),
labels = label_number_auto())
现在我想自定义标签。因为我显示了不同类别的支出,所以最好将 y 轴标记为“0.001 Mio€”、“0.01 Mio€”、“0.1 Mio€”、“1 Mio€”、“10 Mio€”等而不是 1000,10000,100000,1000000,10000000 等等。
如何更改标签?
#labels = paste(label_number_auto()/1000000,"Mio€")
无效。
感谢您的任何提示。
如果需要,我会创建一个示例:-)
V
对标签使用格式化函数并将它们转换为对数刻度"by hand":
ggplot(diamonds, aes(color, log10(price))) +
geom_boxplot() +
scale_y_continuous(labels = function(x) paste(round(10^x)/1000, "Tsd. €"))
使用 ggplot 3.2.0 测试。
两个尺度相同的事实可以通过未经修改的绘图看出:
ggplot(diamonds, aes(color, price)) +
geom_boxplot()
嘿,
我创建了一个包含不同类别的条形图。所有类别都在同一尺度上进行测量,但每个类别的价值处于不同的水平。最好是通过 log10 转换 y 比例以显示所有类别。
使用这段代码非常简单:
scale_y_continuous(trans = log10_trans(),
breaks = trans_breaks("log10", function(x) 10^x),
labels = label_number_auto())
现在我想自定义标签。因为我显示了不同类别的支出,所以最好将 y 轴标记为“0.001 Mio€”、“0.01 Mio€”、“0.1 Mio€”、“1 Mio€”、“10 Mio€”等而不是 1000,10000,100000,1000000,10000000 等等。
如何更改标签?
#labels = paste(label_number_auto()/1000000,"Mio€")
无效。
感谢您的任何提示。
如果需要,我会创建一个示例:-)
V
对标签使用格式化函数并将它们转换为对数刻度"by hand":
ggplot(diamonds, aes(color, log10(price))) +
geom_boxplot() +
scale_y_continuous(labels = function(x) paste(round(10^x)/1000, "Tsd. €"))
使用 ggplot 3.2.0 测试。
两个尺度相同的事实可以通过未经修改的绘图看出:
ggplot(diamonds, aes(color, price)) +
geom_boxplot()