diff --git a/library/src/main/java/com/dzeio/charts/Entry.kt b/library/src/main/java/com/dzeio/charts/Entry.kt index 526fec8..dbd7e2a 100644 --- a/library/src/main/java/com/dzeio/charts/Entry.kt +++ b/library/src/main/java/com/dzeio/charts/Entry.kt @@ -1,10 +1,13 @@ package com.dzeio.charts +import com.dzeio.charts.series.SerieInterface + /** * A Base entry for any charts */ data class Entry( var x: Double, var y: Float, - var color: Int? = null + var color: Int? = null, + var serie: SerieInterface? = null ) diff --git a/library/src/main/java/com/dzeio/charts/axis/XAxis.kt b/library/src/main/java/com/dzeio/charts/axis/XAxis.kt index a6833e2..9c411bb 100644 --- a/library/src/main/java/com/dzeio/charts/axis/XAxis.kt +++ b/library/src/main/java/com/dzeio/charts/axis/XAxis.kt @@ -52,7 +52,7 @@ class XAxis( } override fun getPositionOnRect(entry: Entry, drawableSpace: RectF): Double { - val result = drawableSpace.width() * (entry.x - x) / getDataWidth() + val result = drawableSpace.left + drawableSpace.width() * (entry.x - x) / getDataWidth() if (view.type == ChartType.GROUPED) { val serie = view.series.find { it.entries.contains(entry) } val index = view.series.indexOf(serie) diff --git a/library/src/main/java/com/dzeio/charts/series/BarSerie.kt b/library/src/main/java/com/dzeio/charts/series/BarSerie.kt index 209b92a..651541f 100644 --- a/library/src/main/java/com/dzeio/charts/series/BarSerie.kt +++ b/library/src/main/java/com/dzeio/charts/series/BarSerie.kt @@ -65,7 +65,7 @@ class BarSerie( // calculated height in percent from 0 to 100 var top = view.yAxis.getPositionOnRect(entry, drawableSpace) .coerceIn(drawableSpace.top, drawableSpace.bottom) - var posX = drawableSpace.left + view.xAxis.getPositionOnRect( + var posX = view.xAxis.getPositionOnRect( entry, drawableSpace ).toFloat() diff --git a/library/src/main/java/com/dzeio/charts/series/BaseSerie.kt b/library/src/main/java/com/dzeio/charts/series/BaseSerie.kt index 23c032f..a88e3d5 100644 --- a/library/src/main/java/com/dzeio/charts/series/BaseSerie.kt +++ b/library/src/main/java/com/dzeio/charts/series/BaseSerie.kt @@ -25,6 +25,12 @@ sealed class BaseSerie( override var yAxisPosition: YAxisPosition = YAxisPosition.RIGHT override var entries: ArrayList = arrayListOf() + set(values) { + for (value in values) { + value.serie = this + } + field = values + } override fun getDisplayedEntries(): ArrayList { val minX = view.xAxis.x diff --git a/library/src/main/java/com/dzeio/charts/series/LineSerie.kt b/library/src/main/java/com/dzeio/charts/series/LineSerie.kt index 8076bf9..8b3d72c 100644 --- a/library/src/main/java/com/dzeio/charts/series/LineSerie.kt +++ b/library/src/main/java/com/dzeio/charts/series/LineSerie.kt @@ -68,9 +68,10 @@ class LineSerie( entriesCurrentY[entry.x]!!.value = top } - val posX = (drawableSpace.left + - view.xAxis.getPositionOnRect(entry, drawableSpace) + - view.xAxis.getEntryWidth(drawableSpace) / 2f).toFloat() + val posX = ( + view.xAxis.getPositionOnRect(entry, drawableSpace) + + view.xAxis.getEntryWidth(drawableSpace) / 2f + ).toFloat() // handle color recoloration val paint = Paint(linePaint)