Tôi gặp sự cố với định dạng của nhãn đánh dấu của trục. Tôi vô hiệu hóa bù đắp từ y_axis:định dạng nhãn trục matplotlib
ax1.ticklabel_format(style = 'sci', useOffset=False)
và cố gắng đặt nó một định dạng khoa học nhưng tất cả tôi nhận được là:
0.00355872
nhưng tôi mong đợi một cái gì đó như:
3.55872...E-2
hoặc giống.
những gì tôi thực sự muốn là một cái gì đó như:
3.55872... (on the tick label)
x 10^2 (or something similar - on the axis label)
tôi có thể cố gắng thiết lập các nhãn như tĩnh ,, nhưng cuối cùng tôi sẽ có một vài chục hoặc hàng trăm lô với giá trị khác nhau, vì vậy nó cần được đặt động.
Một giải pháp thay thế là đặt offset y_axis làm nhãn, nhưng tôi cũng không có đầu mối về cách thực hiện điều này.
Làm mờ, sử dụng FuncFormatter, nhưng với một vài sửa đổi 'ax1.get_yaxis(). Set_major_formatter (ticker.FuncFormatter (lambda x, p: "%. 2f"% (x * (10 ** scale_pow))))) '. Chỉ cần một vài nghi ngờ: Tôi vẫn không hiểu 'lambda' và 'p' là gì. Cảm ơn nhiều! :) – jorgehumberto
Tôi đoán rằng 'FuncFormatter' muốn một hàm với hai đối số. 'lambda x, p: do something' tạo ra một hàm nhận hai đối số (' x' và 'p') và thực hiện bất kỳ thao tác nào bạn cần làm. [Xem ở đây để được hướng dẫn] (http://www.secnetix.de/olli/Python/lambda_functions.hawk) –
@jorgehumberto xóa 'lambda' và thêm một chút giải thích về' p'. 'lambda' chỉ là một cách để tạo ra một hàm với' def', đó là python ưa thích không thực sự cần thiết cho câu trả lời này. Xin lỗi vì đã khiến nó phức tạp hơn mức cần thiết. – tacaswell