(50)의 간격, 오픈 소스가 큰가요?
내 BarChart에 앞서이 문제가 있습니다. x 축에서 눈금을 사용자 정의하는 것입니다. 난 CategoryAxis.java만으로이 기능을 구현했습니다. 나는 이것이 당신에게 약간의 빛을 줄 수 있기를 바랍니다. 99 tickInterval을 설정하면
변수 "tickInterval"을 유의하시기 바랍니다, 나는 표시됩니다 ... 단지 0, 100, 200, 300, 1000 개 번호가 예를 들어 , 클래스에이 속성을 추가했다.
안녕 방법, 내 freechart 버전은 우리는 당신이 몇 가지 추가 정보 바람직 자체 포함 된 예제를 제공 할 수있는 경우 ([SSCCE] (http://sscce.org/)) 1.0.5
public List refreshTicks(Graphics2D g2,
AxisState state,
Rectangle2D dataArea,
RectangleEdge edge) {
List ticks = new java.util.ArrayList();
// sanity check for data area...
if (dataArea.getHeight() <= 0.0 || dataArea.getWidth() < 0.0) {
return ticks;
}
CategoryPlot plot = (CategoryPlot) getPlot();
List categories = plot.getCategoriesForAxis(this);
double max = 0.0;
if (categories != null) {
CategoryLabelPosition position
= this.categoryLabelPositions.getLabelPosition(edge);
float r = this.maximumCategoryLabelWidthRatio;
if (r <= 0.0) {
r = position.getWidthRatio();
}
float l = 0.0f;
if (position.getWidthType() == CategoryLabelWidthType.CATEGORY) {
l = (float) calculateCategorySize(categories.size(), dataArea,
edge);
}
else {
if (RectangleEdge.isLeftOrRight(edge)) {
l = (float) dataArea.getWidth();
}
else {
l = (float) dataArea.getHeight();
}
}
int categoryIndex = 0;
Iterator iterator = categories.iterator();
while (iterator.hasNext()) {
Comparable category = (Comparable) iterator.next();
if(categoryIndex>0 && tickInterval>0)
{
if((categoryIndex+1) % (tickInterval+1) > 0)
{
category = "";
}
}
TextBlock label = null;
if(tickInterval> 0)
{
label = this.createSingleLabel(category, l * r, edge, g2);
}
else
{
label = createLabel(category, l * r, edge, g2);
}
if (edge == RectangleEdge.TOP || edge == RectangleEdge.BOTTOM) {
max = Math.max(max, calculateTextBlockHeight(label,
position, g2));
}
else if (edge == RectangleEdge.LEFT
|| edge == RectangleEdge.RIGHT) {
max = Math.max(max, calculateTextBlockWidth(label,
position, g2));
}
Tick tick = new CategoryTick(category, label,
position.getLabelAnchor(), position.getRotationAnchor(),
position.getAngle());
ticks.add(tick);
categoryIndex = categoryIndex + 1;
}
}
state.setMax(max);
return ticks;
}
입니다 도움을 줄 수 있습니다. 필자는'LineChart'와'XYLineChart'를 모두 사용하여 시도해 보았습니다. 그리고 두 도메인 모두 'DomainAxis'에 번호를 표시했습니다. – GrahamA
안녕하세요, 제가 한 가지 대답을 얻었습니다. 존은 내 문제를 정말로 이해했고 나는 그가 그것을 거의 해결했다고 생각한다. 남은 유일한 문제는, 내가 볼 수있는 것은 "..."어디에 100, 200 등이 있어야하는지입니다. – jackie