%useLatestDescriptors
%use lets-plot
%use dataframe
LetsPlot.getInfo()
Lets-Plot Kotlin API v.4.4.2. Frontend: Notebook with dynamically loaded JS. Lets-Plot JS v.4.0.0.
var mpg = DataFrame.readCSV("https://raw.githubusercontent.com/JetBrains/lets-plot-kotlin/master/docs/examples/data/mpg.csv")
mpg.head()
DataFrame: rowsCount = 5, columnsCount = 12
letsPlot(mpg.toMap()) + geomViolin {y = "hwy"}
geomViolin()
and geomDesity()
¶val densityPlot = letsPlot(mpg.toMap()) +
geomDensity(color="black", alpha=.5) {x="hwy"; fill="drv"} +
facetGrid(x="drv") +
coordFlip() + scaleYContinuous(breaks = emptyList())
ggtitle("geomDensity()")
val violinPlot = letsPlot(mpg.toMap()) +
geomViolin(alpha=0.5) {
x = asDiscrete("drv", order=1)
y = "hwy"
fill = "drv"
} +
ggtitle("geomViolin()")
gggrid(listOf(densityPlot, violinPlot), 2, 400, 300)
drawQuantiles
¶val quantiles = listOf(.25, .5, .75)
letsPlot(mpg.toMap()) { x = "drv"; y = "hwy" } +
geomViolin(quantiles=quantiles) +
ggtitle("quantiles=$quantiles")
scale
¶val options = listOf(null, "area", "count", "width")
val plots = List(options.size) { i ->
letsPlot(mpg.toMap()) { x = "drv"; y = "hwy" } +
geomViolin(scale = options[i], quantiles=quantiles) +
ggtitle("scale = ${options[i]} ")
}
gggrid(plots, 2, 400, 250)
ydensity
statistic¶val plotBase = letsPlot(mpg.toMap()) { x = "drv"; y = "hwy" }
val plots1 = listOf(
plotBase + geomViolin(quantiles=quantiles) + ggtitle("Default"),
plotBase + geomViolin(quantiles=quantiles, kernel="epanechikov") + ggtitle("kernel='epanechikov'"),
plotBase + geomViolin(quantiles=quantiles, bw=.1) + ggtitle("bw=0.1"),
plotBase + geomViolin(quantiles=quantiles, adjust=2) + ggtitle("adjust=2"),
)
gggrid(plots1, 2, 400, 250)
val plotBase2 = plotBase +
scaleColorBrewer(type="qual", palette="Set1") +
scaleFillBrewer(type="qual", palette="Set1") +
themeGrey()
plotBase2 +
geomViolin(quantiles = quantiles, alpha = 0.5, size = 2,
tooltips = layerTooltips().title("^x")
.line("year|@year")
.line("hwy|@hwy")
.line("violinwidth|@..violinwidth..")
.line("density|@..density..").format("@..density..", ".3f")
.line("count|@..count..").format("@..count..", ".3f")
.line("scaled|@..scaled..").format("@..scaled..", ".3f")
) {
color = asDiscrete("year")
fill = asDiscrete("year")
}
plotBase2 +
geomViolin(quantiles = quantiles, alpha = 0.5, size = 2) {
color = asDiscrete("year")
fill = asDiscrete("year")
} +
facetGrid(y = "year")
coordFlip()
¶plotBase + geomViolin(quantiles = quantiles) + coordFlip()
geomViolin()
and geomBoxplot()
¶plotBase2 +
geomViolin(quantiles = quantiles, alpha = 0.5, size = 1, trim = false) +
geomBoxplot(width=.2, position = positionDodge(.2), outlierShape = 21, outlierFill = "white", outlierSize = 5) {
color = asDiscrete("year")
fill = asDiscrete("year")
}