Los gráficos de columnas no muestran valores negativos en aplicaciones de Android e iOS
Tenemos una membresía paga de 1 año para anychart y usamos gráficos de columnas en mis pantallas. Pero queremos mostrar valores negativos en columnas como se muestra a continuación:
Pero nuestros valores negativos se muestran como valor cero como se muestra a continuación:
Cuando mostramos valores negativos, el eje x se desplaza hacia arriba. No se ha escrito ningún código adicional para mostrar valores negativos en gráficos escritos en JavaScript. No podemos mostrar valores negativos en aplicaciones de Android e iOS. ¿Puede compartir un bloque de código de muestra de Java o Swift donde podamos mostrar valores negativos en un gráfico de columnas?
Usamos el siguiente código de github. Le agradecería que pudiera hacer correcciones al código siguiente. https://github.com/AnyChart/AnyChart-Android/blob/master/sample/src/main/java/com/anychart/sample/charts/ColumnChartActivity.java
package com.anychart.sample.charts;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.anychart.AnyChart;
import com.anychart.AnyChartView;
import com.anychart.chart.common.dataentry.DataEntry;
import com.anychart.chart.common.dataentry.ValueDataEntry;
import com.anychart.charts.Cartesian;
import com.anychart.core.cartesian.series.Column;
import com.anychart.enums.Anchor;
import com.anychart.enums.HoverMode;
import com.anychart.enums.Position;
import com.anychart.enums.TooltipPositionMode;
import com.anychart.sample.R;
import java.util.ArrayList;
import java.util.List;
public class ColumnChartActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chart_common);
AnyChartView anyChartView = findViewById(R.id.any_chart_view);
anyChartView.setProgressBar(findViewById(R.id.progress_bar));
Cartesian cartesian = AnyChart.column();
List<DataEntry> data = new ArrayList<>();
data.add(new ValueDataEntry("Column 1", 48));
data.add(new ValueDataEntry("Column 2", -45));
data.add(new ValueDataEntry("Column 3", 26));
data.add(new ValueDataEntry("Column 4", 11));
data.add(new ValueDataEntry("Column 5", 12));
data.add(new ValueDataEntry("Column 6", 60));
data.add(new ValueDataEntry("Column 7", -30));
data.add(new ValueDataEntry("Column 8", 50));
data.add(new ValueDataEntry("Column 9", 60));
Column column = cartesian.column(data);
column.tooltip()
.titleFormat("{%X}")
.position(Position.CENTER_BOTTOM)
.anchor(Anchor.CENTER_BOTTOM)
.offsetX(0d)
.offsetY(5d)
.format("${%Value}{groupsSeparator: }");
cartesian.animation(true);
cartesian.title("Top 10 Cosmetic Products by Revenue");
cartesian.yScale().minimum(0d);
cartesian.yAxis(0).labels().format("${%Value}{groupsSeparator: }");
cartesian.tooltip().positionMode(TooltipPositionMode.POINT);
cartesian.interactivity().hoverMode(HoverMode.BY_X);
cartesian.xAxis(0).title("Product");
cartesian.yAxis(0).title("Revenue");
anyChartView.setChart(cartesian);
}
}
Gracias por tus sugerencias.
Para que el eje Y de su gráfico muestre valores negativos, puede especificar sus valores mínimo y máximo .
// Set yScale's minimum and maximum values to show negative values
cartesian.yScale().minimum(-100).maximum(100);
En cuanto al cambio de posición del eje X, no es posible trasladarlo al centro.
Sin embargo, es posible imitar el eje con una línea horizontal personalizada.
// Create a line marker for the centered axis line
Cartesian line = cartesian.lineMarker(2, "{stroke: 'lightgrey'}");
Entonces todo lo que tienes que hacer es desactivar el eje X predeterminado.
// Disable the default xAxis
cartesian.xAxis(0).enabled(false);
Al final, tendrás un gráfico similar:
En caso de que necesite información más detallada, consulte la documentación y la referencia de API
Líneas de marcador Referencia de API Documentos
de líneas de marcador