Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ fun ChartScreen(chartType: Int) {
3 -> LineChartScreen()
4 -> PieChartScreen()
5 -> DonutPieChartScreen()
6-> BubbleChartWithGrid()
6 -> BubbleChartWithGrid()
7 -> BarWithLineChart()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ import co.yml.kmm.charts.ui.barchart.models.GroupBarChartData
import co.yml.kmm.charts.ui.barchart.models.GroupSeparatorConfig
import co.yml.kmm.charts.ui.bubblechart.BubbleChart
import co.yml.kmm.charts.ui.bubblechart.model.BubbleChartData
import co.yml.kmm.charts.ui.combinedchart.CombinedChart
import co.yml.kmm.charts.ui.combinedchart.model.CombinedChartData
import co.yml.kmm.charts.ui.linechart.LineChart
import co.yml.kmm.charts.ui.linechart.model.*
import co.yml.kmm.charts.ui.piechart.charts.DonutPieChart
Expand Down Expand Up @@ -463,3 +465,67 @@ internal fun BubbleChartWithGrid() {
)

}

@Composable
internal fun BarWithLineChart() {
val maxRange = 100
val groupBarData = DataUtils.getGroupBarChartData(50, 100, 3)
val yStepSize = 10
val xAxisData = AxisData.Builder()
.axisStepSize(30.dp)
.bottomPadding(5.dp)
.labelData { index -> index.toString() }
.build()
val yAxisData = AxisData.Builder()
.steps(yStepSize)
.labelAndAxisLinePadding(20.dp)
.axisOffset(20.dp)
.labelData { index -> (index * (maxRange / yStepSize)).toString() }
.build()
val linePlotData = LinePlotData(
lines = listOf(
Line(
DataUtils.getLineChartData(50, maxRange = 100),
lineStyle = LineStyle(color = Color.Blue),
intersectionPoint = IntersectionPoint(),
selectionHighlightPoint = SelectionHighlightPoint(),
selectionHighlightPopUp = SelectionHighlightPopUp()
),
Line(
DataUtils.getLineChartData(50, maxRange = 100),
lineStyle = LineStyle(color = Color.Black),
intersectionPoint = IntersectionPoint(),
selectionHighlightPoint = SelectionHighlightPoint(),
selectionHighlightPopUp = SelectionHighlightPopUp()
)
)
)
val colorPaletteList = DataUtils.getColorPaletteList(3)
val legendsConfig = LegendsConfig(
legendLabelList = DataUtils.getLegendsLabelData(colorPaletteList),
gridColumnCount = 3
)
val barPlotData = BarPlotData(
groupBarList = groupBarData,
barStyle = BarStyle(barWidth = 35.dp),
barColorPaletteList = colorPaletteList
)
val combinedChartData = CombinedChartData(
combinedPlotDataList = listOf(barPlotData, linePlotData),
xAxisData = xAxisData,
yAxisData = yAxisData
)
Column(
Modifier
.height(500.dp)
) {
CombinedChart(
modifier = Modifier
.height(400.dp),
combinedChartData = combinedChartData
)
Legends(
legendsConfig = legendsConfig
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,27 @@ object DataUtils {
return list
}


/**
* Returns list of points
* @param listSize: Size of total number of points needed.
* @param start: X values to start from. ex: 50 to 100
* @param maxRange: Max range of Y values
*/
fun getLineChartData(listSize: Int, start: Int = 0, maxRange: Int): List<Point> {
val list = arrayListOf<Point>()
for (index in 0 until listSize) {
list.add(
Point(
index.toFloat(),
(start until maxRange).random().toFloat()
)
)
}
return list
}


}


Loading