2010-03-02 49 views
5

Tôi đang sử dụng JFreeChart và muốn có thể thay đổi nhãn trên trục phạm vi từ một số thành cái gì đó có ý nghĩa hơn cho miền tôi đang ở. Tôi chỉ thấy các tùy chọn để tùy chỉnh giao diện của nhãn và không có cách nào để ghi đè lên nội dung của nhãn dựa trên vị trí của dấu tích.Làm cách nào để thay đổi tickLabel trên NumberAxis trong JFreeChart?

Có ai biết cách ghi đè văn bản của nhãn tickLabel không?

Trả lời

7

JFreeChart BarChartDemo cho biết cách sử dụng phương thức setStandardTickUnits(). NumberAxis có một số nhà máy tĩnh tiện dụng cho việc này. Để ghi đè các giá trị mặc định, bạn có thể "tạo ví dụ của riêng bạn là TickUnits và sau đó chuyển nó sang phương thức setStandardTickUnits()".

Phụ lục: Các giá trị mặc định được đề cập ở trên chỉ cần sử dụng lớp con của java.text.Format; bạn có thể tự cung cấp cho mỗi TickUnit bạn add(). Nếu điều này là không đầy đủ, bạn có thể ghi đè valueToString() trong lớp con cụ thể của riêng bạn TickUnit và sử dụng nó để soạn yêu cầu TickUnits.

+0

Không dễ như tôi mong đợi, nhưng điều này thật tuyệt! Cảm ơn. –

5

Tôi chỉ tìm thấy điều này trong khi gặp vấn đề tương tự. Tôi đã giải quyết nó bằng cách sử dụng SymbolAxis. SymbolAxis có thể được thêm vào XYPlot.

SymbolAxis sa = new SymbolAxis("AxisLabel", 
    new String[]{"Category1","Category2","Category3","..."}); 
chart.getPlot().setDomainAxis(sa); 
+0

Hoạt động tốt với [Unicode] (http://www.unicode.org/charts/). – trashgod