これはややハッキングアップされた回答です。私は良い結果を得られる答えをすべてアップビューします。しかし、それは動作します - ここで私は何をしたのですか?
まず、私が使用することを望んでいたdouble値のリストを作成した。その後、私は最初にすべてのデフォルトがTicktype.MINORにダニ設定するNumberAxisにrefreshTicksメソッドを上書き
public static List<Double> m_lPercentageValuesForY = Arrays.asList(0.1,0.2,0.3,0.4,0.5,0.58,0.66,0.70,0.74,0.78,0.82,0.95,1.0);
、その後、追加し、 Ticktype.MAJORで自分のカスタムティックを作成してください:
NumberAxis axisLeft = new NumberAxis(plot.getRangeAxis().getLabel()) {
@Override
public List refreshTicks(
Graphics2D g2,
AxisState state,
Rectangle2D dataArea,
RectangleEdge edge) {
List defaultTicks = super.refreshTicks(g2, state, dataArea, edge);
List customTicks = new ArrayList();
for (Object aTick : defaultTicks) {
NumberTick currenttick = (NumberTick) aTick;
customTicks.add(new NumberTick(
TickType.MINOR,
currenttick.getValue(),
"", //empty
currenttick.getTextAnchor(),
currenttick.getRotationAnchor(),
currenttick.getAngle()));
}
NumberTick aTick = (NumberTick) defaultTicks.get(0);
for (double dTest : m_lPercentageValuesForY) {
customTicks.add(new NumberTick(
TickType.MAJOR,
dTest,
String.format("%.0f%%", dTest * 100), //only wanted values are set to major
aTick.getTextAnchor(),
aTick.getRotationAnchor(),
aTick.getAngle()));
}
return customTicks;
}
};
plot.setRangeAxis(axisLeft);
50%を半分に、80%を4/5にしたいなどですか? – trashgod
はい、相対的な位置を変えてはいけません(対数スケールはありません)、重要な閾値だけにラベルが付くようにしてください。 – ptstone
おそらく 'SymbolAxis'を試してみてください。[here](http://stackoverflow.com/q/2365657/230513)。 – trashgod