我有一個跟隨從JFreeChart(StackedBarChartDemo5)演示爲了創建一個劇情讓我使用GroupedStackedBarRenderer
。如何在JFreeChart中使用GroupedStackedBarRenderer時旋轉組標籤?
基本上,我爲每個電臺(代表一個酒吧中的一個堆棧),連接到一個收音機(代表一個酒吧在圖中),爲接收和發送(RX和TX)繪製空中時間。
情節看起來是這樣的:
有兩類(RX和TX)和若干組(收音機)。正如你所看到的,目前,無線電MAC是不可讀的。 我想旋轉這些標籤,以便使情節更清晰。
我已經使用了下面的代碼段,以嘗試並旋轉標籤:subCategoryAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI/4));
這僅旋轉的類別標籤(RX和TX),而不是組的標籤(無線電MACS):
我也嘗試了其他幾種方法,所有這些方法都導致無處...我如何旋轉這些子標籤?
這裏是我用來填充有標籤的底層代碼:
SubCategoryAxis subCategoryAxis = new SubCategoryAxis("Radio MACs (separate Rx and Tx plots)");
subCategoryAxis.setCategoryMargin(0.05D);
// subCategoryAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI/4));
KeyToGroupMap keyToGroupMap = null;
final Set<String> radios = Sets.newHashSet();
for (Entry<XRadio, Triplet<XStation, Double, Double>> entryMap: channelTimes.entries()) {
final String radioMac = entryMap.getKey().getMac();
if (keyToGroupMap == null)
keyToGroupMap = new KeyToGroupMap(radioMac);
if (!radios.contains(radioMac)) {
subCategoryAxis.addSubCategory(radioMac);
radios.add(radioMac);
}
final Triplet<XStation, Double, Double> chTriplet = entryMap.getValue();
final String seriesKey = radioMac + ":" + chTriplet.a.getMac();
keyToGroupMap.mapKeyToGroup(seriesKey, radioMac);
model.getDataset().addValue(chTriplet.b, seriesKey, "Rx");
model.getDataset().addValue(chTriplet.c, seriesKey, "Tx");
}
if (keyToGroupMap == null)
return;
groupedStackedBarRenderer.setSeriesToGroupMap(keyToGroupMap);
groupedStackedBarRenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
groupedStackedBarRenderer.setBaseItemLabelsVisible(true);
groupedStackedBarRenderer.setItemMargin(0.1D); // 10 %
groupedStackedBarRenderer.getPlot().setDomainAxis(subCategoryAxis);
您可以使用[如何在JFreeChart中的數字軸的域上旋轉刻度標記標籤?]中顯示的方法之一(http://stackoverflow.com/questions/7071057/how-do -i-旋轉蜱標記標籤 - 上的域對的一數軸在-jfreechart的)。 – trashgod