1

IntervalMarker のラベルを回転させたい:

        IntervalMarker im = new IntervalMarker(...);
        im.setLabel("LABEL");
//      im.setLabelOffsetType(LengthAdjustmentType.EXPAND);
//      im.setLabelOffset(new RectangleInsets(10.0, 10.0, 10.0, 10.0)); 
//      im.setLabelFont(new Font("SansSerif", Font.ITALIC, 11));
        im.setLabelAnchor(RectangleAnchor.TOP_LEFT);
        im.setLabelTextAnchor(TextAnchor.TOP_LEFT);
        im.setPaint(new Color(208, 194, 214));

写真をアップロードできませんでした。リンクは次のとおりです: http://i54.tinypic.com/5z40fs.png

見栄えを良くするために、「LABEL」を縦にしたいと思います。

ありがとうございました

4

3 に答える 3

4

ラベルをより詳細に制御するために、テキスト注釈を垂直マーカーに追加する方が簡単であることがわかりました。次に例を示します。

// vertical line marker and label
Marker updateMarker = new ValueMarker(dayOf, Color.black, dashedStroke, null, null, 1.0f);    
XYTextAnnotation updateLabel = new XYTextAnnotation("Update", dayOf - labelOffset, labelHeight);
updateLabel.setFont(new Font("Sans Serif", Font.BOLD, 10));
updateLabel.setRotationAnchor(TextAnchor.BASELINE_CENTER);
updateLabel.setTextAnchor(TextAnchor.BASELINE_CENTER);
updateLabel.setRotationAngle(-3.14 / 2);
updateLabel.setPaint(Color.black);
plot.addDomainMarker(updateMarker, Layer.BACKGROUND);
plot.addAnnotation(updateLabel);

この回転により、ラベルは垂直マーカー ラインの左側に表示され、下から上に読み取られます。変数「labelOffset」と「labelHeight」を使用して、垂直線に対するラベルの正確な位置を決定しますが、これらは静的に設定することもできます。

于 2012-11-14T16:29:05.970 に答える
3

マーカーのラベルのレンダリングは、draw{Domain|Range}Marker()を使用してプロットのレンダラーのメソッドによって処理されますdrawAlignedString()。代わりに ,を使用する必要がdrawRotatedString()あります。

于 2011-08-12T15:15:28.833 に答える
0

これを直接行う方法は見つかりませんでしたが、回転したテキスト注釈をいつでも適切な場所に配置できます。

于 2011-09-05T15:58:05.113 に答える