Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

line data set position center in combine chart MPAndroidChart #5214

Open
Anayaali2019 opened this issue Dec 4, 2024 · 0 comments
Open

line data set position center in combine chart MPAndroidChart #5214

Anayaali2019 opened this issue Dec 4, 2024 · 0 comments

Comments

@Anayaali2019
Copy link

ISSUE IS HOW TO SET POSISTION OF LINE DATA(PRICE DATA) in CENTER
IF IS SET
YAxis leftAxis = combinedChart.getAxisLeft();

it move complete chart to Center

Legend legend = combinedChart.getLegend();
legend.setEnabled(true);
legend.setForm(Legend.LegendForm.CIRCLE);
legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);

// Define custom legend entries for red, green, blue, and purple boxes
LegendEntry redEntry = new LegendEntry();
redEntry.formColor = getResources().getColor(android.R.color.holo_red_dark);
redEntry.label = "Volume"; // Label for red box

    LegendEntry greenEntry = new LegendEntry();
    greenEntry.formColor = getResources().getColor(android.R.color.holo_green_dark);
    greenEntry.label = "Volume"; // Label for green box

    LegendEntry blueEntry = new LegendEntry();
    blueEntry.formColor = getResources().getColor(android.R.color.holo_blue_dark);
    blueEntry.label = "OI"; // Label for blue box

    LegendEntry blackEntry = new LegendEntry();
    blackEntry.formColor = getResources().getColor(android.R.color.holo_purple);
    blackEntry.label = "Price"; // Label for purple box

    legend.setCustom(Arrays.asList(redEntry, greenEntry, blueEntry, blackEntry));
    combinedChart.getDescription().setEnabled(false);

// Optional: Add animations and other customizations
combinedChart.animateY(1000); // Animate vertically over 1000ms

    CombinedData combinedData = new CombinedData();

// Get BarData (Volume) and assign it to the left Y-Axis
BarData volumeData = getVolume(modelclassIOdata);
volumeData.setBarWidth(0.9f); // Set bar width for better visualization
combinedData.setData(volumeData); // Adding bar data to combined data

// Get LineData (Price) and assign it to the right Y-Axis
LineData priceData = getPrice(modelclassIOdata);
YAxis priceYAxis = new YAxis();
priceYAxis.setAxisMinimum(miniprice - 50); // Adjust range to show the price line in the middle
priceYAxis.setAxisMaximum(maxprice + 50); // Set the range for price chart

// Get LineData (Open Interest) and assign it to the right Y-Axis
LineData oiData = getOI(modelclassIOdata);

    LineData lineData = new LineData();

    // Add both datasets to the lineData
    lineData.addDataSet(priceData.getDataSetByIndex(0)); // Price data set
    lineData.addDataSet(oiData.getDataSetByIndex(0)); // Open Interest data set


    // Set the combined LineData to combinedData
    combinedData.setData(lineData);


    priceData.setValueFormatter(new ValueFormatter() {
        @Override
        public String getFormattedValue(float value) {
            return String.format(Locale.US, "%.5f", value);  // Ensure high precision
        }
    });

// Update the CombinedChart with the new data
combinedChart.setData(combinedData);

// Refresh the chart to reflect the changes
combinedChart.invalidate();

price data can contain value in -15222 , .2000 , 15000 for different pairs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant