私はバーチャートでバーを選択できるようにしたいのですが、バーを選択するとバーの色が変わってしまいますが、軸ラベル。これを行う方法はありますか?誰かが私を助けてくれますか?MPAndroidChart:x軸ラベルに異なる色を設定できますか?
答えて
はいxAxisラベルに異なる色を設定することは可能です。あなたは、以下のようなものをカスタムレンダラを使用する必要があります:colors
が解決色のList<Integer>
ある
mChart.setXAxisRenderer(new ColoredLabelXAxisRenderer(mChart.getViewPortHandler(), mChart.getXAxis(), mChart.getTransformer(AxisDependency.LEFT), colors));
(IDSリソースではない)と同じサイズのように:
import android.graphics.Canvas;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.renderer.XAxisRenderer;
import com.github.mikephil.charting.utils.MPPointF;
import com.github.mikephil.charting.utils.Transformer;
import com.github.mikephil.charting.utils.Utils;
import com.github.mikephil.charting.utils.ViewPortHandler;
import java.util.Collections;
import java.util.List;
/**
* Created by rawsond on 29/01/17.
*/
public class ColoredLabelXAxisRenderer extends XAxisRenderer {
List<Integer> labelColors;
public ColoredLabelXAxisRenderer(ViewPortHandler viewPortHandler, XAxis xAxis, Transformer trans) {
super(viewPortHandler, xAxis, trans);
labelColors = Collections.EMPTY_LIST;
}
public ColoredLabelXAxisRenderer(ViewPortHandler viewPortHandler, XAxis xAxis, Transformer trans, List<Integer> colors) {
super(viewPortHandler, xAxis, trans);
this.labelColors = colors;
}
@Override
protected void drawLabels(Canvas c, float pos, MPPointF anchor) {
final float labelRotationAngleDegrees = mXAxis.getLabelRotationAngle();
boolean centeringEnabled = mXAxis.isCenterAxisLabelsEnabled();
float[] positions = new float[mXAxis.mEntryCount * 2];
for (int i = 0; i < positions.length; i += 2) {
// only fill x values
if (centeringEnabled) {
positions[i] = mXAxis.mCenteredEntries[i/2];
} else {
positions[i] = mXAxis.mEntries[i/2];
}
}
mTrans.pointValuesToPixel(positions);
for (int i = 0; i < positions.length; i += 2) {
float x = positions[i];
if (mViewPortHandler.isInBoundsX(x)) {
String label = mXAxis.getValueFormatter().getFormattedValue(mXAxis.mEntries[i/2], mXAxis);
int color = getColorForXValue(mXAxis.mEntries[i/2]); //added
mAxisLabelPaint.setColor(color);
if (mXAxis.isAvoidFirstLastClippingEnabled()) {
// avoid clipping of the last
if (i == mXAxis.mEntryCount - 1 && mXAxis.mEntryCount > 1) {
float width = Utils.calcTextWidth(mAxisLabelPaint, label);
if (width > mViewPortHandler.offsetRight() * 2
&& x + width > mViewPortHandler.getChartWidth())
x -= width/2;
// avoid clipping of the first
} else if (i == 0) {
float width = Utils.calcTextWidth(mAxisLabelPaint, label);
x += width/2;
}
}
drawLabel(c, label, x, pos, anchor, labelRotationAngleDegrees);
}
}
}
private int getColorForXValue(int index) {
if (index >= labelColors.size()) return mXAxis.getTextColor();
if (index < 0) return mXAxis.getTextColor();
return labelColors.get(index);
}
}
はこのようにそれを消費しますIDataSet
のエントリ数。ハイライト上のバーの色を変更する方法はすでに知っているので、その部分はあなた次第です。通常と同じ方法でcolors
を操作してください。 // githubの:
おそらく関連http://stackoverflow.com/q/43443787 –
非常に役に立ちました!それを検証するのに長い時間がかかりました。 – rohan
@rohanありがとう!私はあなたに役立ってうれしいです –
- 1. chart js - 各x軸ラベルに異なる色を適用する
- 2. twin()軸でラベルを設定するとき、Matplotlibが軸ラベルをスキップする
- 3. joyplotのx軸ラベルを設定する
- 4. ヒストグラムパンダの軸ラベルを設定する
- 5. mplot3d軸ラベルと色
- 6. 異なる色で軸ラベルをプロットできません( "グラフィカルパラメータ 'col.axis'の長さが間違っています)
- 7. 平行軸チャートの軸ラベルに異なる向きを使用する方法
- 8. Excelの垂直軸ラベルを設定できません。グラフVBA
- 9. d3棒グラフでカスタムx軸ラベルを設定しますか?
- 10. パンダのヒストグラムにx軸ラベルとy軸ラベルを設定するにはどうすればよいですか?
- 11. 特定のDataGridTextColumnsに異なる色を設定します
- 12. カテゴリごとに異なる色を設定することができます
- 13. Excel:ラベル番号に基づいてx軸にラベル距離を設定できますか?
- 14. gplots heatmap.2で軸ラベルのサイズを設定するには?
- 15. anglejs素材ラベルのフォント色を設定できません
- 16. CanvasJSのy軸ラベルの幅を設定しますか?
- 17. 異なる環境に異なるルートを設定できますか?
- 18. ラベルの色を変更するY軸とX軸chart.js
- 19. チャートの軸ラベルの書式設定
- 20. Y軸グラフレポートサービスのラベル月の設定
- 21. plt.scatterplotの各ラベルに異なる色を割り当てます
- 22. Seabornで軸ラベル間の距離を設定する
- 23. Windowsフォームでx軸のラベル値を設定する方法
- 24. LineChartViewでX軸のラベル数を設定する方法は?
- 25. matplotlib.animateのラベルと軸の制限を設定するには?
- 26. タイムアウト時にJenkinsが赤と異なる色で設定する
- 27. x軸のラベルをどのように設定するのですか?
- 28. 各リストビューの行に異なる色を設定しました
- 29. ggplot2で軸ラベルの色を変更するには?
- 30. 環境設定を使用して異なる色でサマリーを設定する
これら[#139](https://github.com/PhilJay/MPAndroidChart/issues/319)と[#387](HTTPSを参照してください。ここでの出力例です。 com/danielgindi/Charts/issues/387)の問題です。また、これらの質問をここで見てください:http://stackoverflow.com/questions/28632489/mpandroidchart-how-to-set-label-colorここで:http://stackoverflow.com/questions/29888850/mpandroidchart-set- y軸値に基づく異なる色から棒グラフへの棒グラフの表示を可能にする。私はそれらの組み合わせがあなたがそれを得るのを助けてくれることを期待しています(本当に可能かどうかはわかりませんが、そのデータでいくつかの回避策をとることができます)。 –
@ Error404これらのリンクのどれも質問にお答えできません。 –