2012-05-23 38 views
7

Tôi không thể tìm thấy một chủ đề hoặc tài liệu khác về chủ đề này - có ai từng thành công trong việc phác thảo trong gói matplotlib pythons không? Cú pháp tôi đang sử dụng là một cái gì đó như thế này cho tất cả các thuộc tính khác:Gạch chân văn bản trong Python/Matplotlib

plt.text(0.05, 0.90, 'Parameters: ', fontsize=12) 

Tuy nhiên, tôi không thể tìm ra cách nhấn mạnh văn bản này ngắn thực sự mã hóa một dòng vào tệp.

Suy nghĩ?

Trả lời

11

Matplotlib có thể sử dụng LaTeX để xử lý tất cả văn bản, xem this page của tài liệu để biết thêm thông tin. Lệnh cho văn bản gạch chân trong LaTeX chỉ đơn giản là \underline. Từ docstring của một trong các tập lệnh mẫu:

Bạn có thể sử dụng TeX để hiển thị tất cả văn bản matplotlib của mình nếu văn bản tham số rc được thiết lập. Điều này hoạt động hiện tại trên các phụ trợ aggps và yêu cầu bạn có tex và các phụ thuộc khác được mô tả tại http://matplotlib.sf.net/matplotlib.texmanager.html được cài đặt đúng trên hệ thống của bạn. Lần đầu tiên bạn chạy một tập lệnh, bạn sẽ thấy rất nhiều đầu ra từ tex và các công cụ liên quan. Thời gian tiếp theo, thời gian có thể im lặng, như rất nhiều các thông tin được lưu trữ trong ~/.tex.cache

Vì vậy, như một ví dụ đơn giản chúng ta có thể làm

import matplotlib.pyplot as plt 
from matplotlib import rc 

rc('text', usetex=True) 

plt.sunplot(111) 

plt.text(0.05, 0.90, r'\underline{Parameters}: ', fontsize=12) 

để có được gạch dưới văn bản .

+0

Xin chào Chris, giải pháp thanh lịch. Tôi đã có thể nhận được gạch dưới theo cách đó nhưng thay đổi usetex thành True cũng ảnh hưởng đến phần còn lại của văn bản trong hình (ví dụ đánh số trên các trục của ô trở thành serif và các văn bản in đậm khác không được in đậm.) Tôi đoán rằng tôi sẽ cũng phải thay đổi tất cả những định dạng này sang định dạng tex, phải không? – nodapic

+0

Nói chung tôi có thể sử dụng lệnh LaTeX mà không có kinh doanh 'rc' (đó là những gì tôi giả định làm cho tất cả các văn bản khác của bạn được hiển thị khác nhau). Tuy nhiên, tôi dường như cần nó trên máy tính Windows của tôi (thông thường tôi làm việc trên một máy Linux, không chắc chắn nếu đây là một vấn đề). Cung cấp cho nó một đi mà không có dòng đó và xem nếu cuộc gọi 'plt.text' vẫn hoạt động. – Chris

+0

Tôi đã thấy rằng tôi có thể sử dụng lệnh LaTeX * mà không cần * gọi 'rc' miễn là tôi không sử dụng' plt.text', tức là 'plt.xlabel',' plt.title' v.v. hoạt động tốt. Có vẻ như chỉ là 'plt.text' yêu cầu tôi định cấu hình' rc'. Nếu bạn thấy rằng bạn cần phải sử dụng 'rc' bạn cũng có thể confiure các phông chữ vv mà bạn muốn sử dụng. – Chris

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