我有一张交易图表。我想要有一个部分,其中购买了股票,而没有购买股票。
数据:
目前,我在这里画了10张
geomLine
图表:
geomLine
绿色geomLine
红色代表该股票被购买。...
var chart = letsPlot(data)
chart += geomLine(
color = "dark-green",
tooltips = TooltipOptions().title("$ticker cost"),
mapping = {
x = "x"
y = "y"
}
)
repeat(isPurchased.size) {
chart += drawRedChart(it)
}
private fun drawRedChart(index: Int): Feature {
return geomLine(
color = "red",
mapping = {
x = "x$index"
y = "y$index"
}
)
}
这个解决方案有效,但它需要太多内存,而且我为购买股票的每个细分市场复制了列表,所以,我的解决方案很糟糕并且不是最佳的。
您能否帮忙根据费用清单用 2 种颜色画一条线,其中红色表示已购买,绿色表示未购买,如上面的屏幕截图所示,使用 Kotlin?
Lets-plot 支持线条和路径几何形状的可变颜色。 尝试仅将颜色映射到“isPurchased”变量的一行:
geomLine(
tooltips = layerTooltips().title("$ticker cost"), // <-- also better
mapping = {
x = "x"
y = "y"
color = "isPurchased"
}
您还需要为此映射设置红/绿色阶:
+ scaleColorManual(listOf("red", "green"), limits = listOf(false, true))
另请参阅:可变线演示。