The exponenFormat
parameter in the theme(...)
function can be used to configure the way "exponent notation" looks like on plot.
Available values:
'e'
for E notation, for example, 1.23e+3, which is the default format.'pow'
for superscript power notation.The "exponent format" is automatically applied to each value formatted in scientific notation, regardless whether the format is user-defined or chosen automatically based on the data. This format affects every part of a plot, including geoms, scales, labels, and tooltips.
%useLatestDescriptors
%use lets-plot
LetsPlot.getInfo()
Lets-Plot Kotlin API v.4.6.0. Frontend: Notebook with dynamically loaded JS. Lets-Plot JS v.4.2.0.
val n = 10
val data = mapOf(
"x" to (0 until n).toList(),
"y" to (0 until n).map { (it + 1 + 0.025 * it) * 10.0.pow(-5) },
"c" to (0 until n).map { it * 10.0.pow(10) }
)
val p = letsPlot(data) { x = "x"; y = "y"; fill = "c" } + geomBar(stat = Stat.identity)
In this example "scientific notation" formatting for the guides is chosen automatically, basing on the data.
val powTheme = theme(exponentFormat = "pow")
gggrid(listOf(
p + ggtitle("E-notation (default)"),
p + powTheme + ggtitle("Superscript Power")
))
geomText()
and geomLabel()
¶By default, values in geomText()
and geomLabel()
are always shown in standard notation.
Thus by default, the 'pow'
in theme()
doesn't affect numbers in geomText()
and geomLabel()
(see the chart on the left) unless
you specify a scientific notation formatting explicitly via the labelFormat
parameter (see the chart on the right).
val left = p + geomLabel(alpha = 0.8, fill = "white") { label = "y" }
val right = p + geomLabel(alpha = 0.8, fill = "white", labelFormat=".2~e") { label = "y" }
gggrid(listOf(left, right)) + powTheme