- 蠟燭的一半隱藏在軸斷線的後面。 如何防止這種重疊?
您可以添加一些保證金軸斷裂在startValue和endValue值。
- 注意註釋的位置:它顯示在不正確的位置和奇怪的角度!
我不能用下面的示例代碼重現這一點。
請問您可以改進您的問題,添加一個簡單的示例項目,我們可以按原樣重現此問題?
- 還請提第三軸斷裂,它示出不正確,也。
我可以看到正在制定一個類似的圖像,斜,並在圖表中間的額外軸斷裂。但是,我只能用評估版本重現此問題,而不能使用註冊版本(ID1078)。
我認爲它與我們在圖表中間繪製的「評估版本」斜向水印有關。
這裏是我使用的代碼:
tChart1.getAspect().setView3D(false);
tChart1.getLegend().setVisible(false);
Candle candle1 = new Candle(tChart1.getChart());
candle1.fillSampleValues(80);
DateTime dt = DateTime.getNow();
for (int i = 0; i < candle1.getCount(); i++) {
candle1.getXValues().setValue(i, dt.toDouble());
dt.add(Calendar.MINUTE, 1);
}
//tChart1.getAxes().getBottom().setIncrement(DateTimeStep.FIVEMINUTES);
tChart1.getAxes().getBottom().getLabels().setDateTimeFormat("hh:mm");
AxisBreaksTool axisBreaksTool1 = new AxisBreaksTool(tChart1.getAxes().getBottom());
for (int i=0; i<3; i++) {
AxisBreak axisBreak1 = new AxisBreak(axisBreaksTool1);
axisBreak1.setStartValue(candle1.getXValues().getValue(10*(i+1))-0.6);
axisBreak1.setEndValue(candle1.getXValues().getValue(10*(i+1)+5)+0.6);
axisBreak1.setStyle(AxisBreakStyle.LINE);
axisBreaksTool1.getBreaks().add(axisBreak1);
}
Annotation annotation1 = new Annotation(tChart1.getChart());
annotation1.setText("My Text");
annotation1.setLeft(10);
annotation1.setTop(10);
似乎與註釋工具和AxisBreaksTool衝突:只要我添加一個軸斷裂,註釋消失(ID1077)。
編輯:
如果你希望你的軸打破在startValue和endValue值依賴於CandleWidth,你可以計算軸單位蠟燭寬度的大小,但你需要的圖表上得到這樣做。
這裏是你如何可以使用ChartPaintListener計算CandleWidth在中軸下方單位,並用它作爲額外餘量爲AxisBreaks:
tChart1.addChartPaintListener(new ChartPaintAdapter() {
@Override
public void chartPainted(ChartDrawEvent e) {
Candle candle1 = (Candle)tChart1.getSeries(0);
double onePxWidth = tChart1.getAxes().getBottom().calcPosPoint(1) - tChart1.getAxes().getBottom().calcPosPoint(0);
double tmpWidthLeft = onePxWidth*(candle1.getCandleWidth()/2 + 4);
double tmpWidthRight = onePxWidth*(candle1.getCandleWidth()/2 + 3);
AxisBreaksTool axisBreaksTool1 = (AxisBreaksTool)tChart1.getTools().getTool(0);
for (int i=0; i<axisBreaksTool1.getBreaks().size(); i++) {
AxisBreak axisBreak1 = axisBreaksTool1.getBreaks().get(i);
axisBreak1.setStartValue(candle1.getXValues().getValue(10*(i+1))+tmpWidthLeft);
axisBreak1.setEndValue(candle1.getXValues().getValue(10*(i+1)+5)-tmpWidthRight);
}
}
});
這是使用的TeeChart Java的Android或.NET的TeeChart爲Xamarin.Android ? – Yeray
@Yeray TeeChart Android版 – Dennis
Java還是.NET?這仍然不清楚 – Yeray