2013-07-24 34 views
6

Trong một âm mưu được tạo bởi matplotlib.pyplot, làm thế nào tôi có thể buộc các nhãn trục được hiển thị theo ký hiệu mũ? Điều này dường như được thực hiện tự động cho các giá trị < 1e-6, nhưng đối với, nói, 5e-6 tôi nhận được "0.000005". Tôi muốn có nó được hiển thị là "5e-6" cũng cho phạm vi này.Matplotlib.pyplot: buộc ký hiệu nhãn trục theo số mũ

+0

http://matplotlib.org/api/ticker_api.html#matplotlib.ticker.FormatStrFormatter ' "% e"' là mũ –

Trả lời

5

có vẻ như như bạn sẽ có thể đặt giới hạn nguồn của ScalarFormatter cho các trục. (Mã chưa được kiểm tra)

# Set limits to x < 10^1 and x > 10^-1 
# (overlapping, thus all inclusive, hopefully) 
gca().get_yaxis().get_major_formatter().set_powerlimits((0, 0)) 
+3

Bạn có thể làm một tốt hơn và chỉ cần gọi 'set_powerlimits' trên 'gca(). get_major_formatter()' – tacaswell

+0

@tcaswell: Rất tốt, cảm ơn. – voithos

+1

@voithos: Tôi phải sử dụng 'gca(). Yaxis.get_major_formatter(). Set_powerlimits ((- 1,1))'. Có cách nào (thanh lịch) để áp dụng thay đổi cho cả hai trục trong một lần? @tcaswell: Bạn làm điều này như thế nào? Gọi 'set_powerlimits' không có đối số đã cho lỗi. – gandi2223

Các vấn đề liên quan