2012-12-24 13 views
17

Tôi đang viết một tập lệnh bằng Python (tệp .py) và tôi đang sử dụng Matplotlib để vẽ một mảng. Tôi muốn thêm chú giải có công thức vào cốt truyện, nhưng tôi chưa thể thực hiện. Tôi đã làm điều này trước trong IPython hoặc thiết bị đầu cuối. Trong trường hợp này, hãy viết một cái gì đó như thế này:Làm thế nào để viết một công thức cao su trong truyền thuyết của một âm mưu bằng cách sử dụng Matplotlib bên trong một tập tin .py?

legend(ur'$The_formula$') 

hoạt động hoàn hảo. Tuy nhiên, điều này không hoạt động khi tôi gọi kịch bản .py của tôi từ thiết bị đầu cuối/IPython.

+0

Bạn đang cố gắng điều gì và điều gì sẽ xảy ra khi nó không hoạt động? – khagler

+0

Nếu một trong các câu trả lời đã giải quyết được vấn đề của bạn, vui lòng chấp nhận nó (hộp kiểm màu xám lớn ở bên trái) – tacaswell

Trả lời

17

Đó là cách đơn giản nhất là chỉ định nhãn khi bạn vẽ dữ liệu, ví dụ:

import matplotlib.pyplot as plt 
ax = plt.gca() # or any other way to get an axis object 
ax.plot(x, y, label=r'$\sin (x)$') 

ax.legend() 
+0

Cảm ơn! Điều này làm việc tốt. Ngoại trừ thực tế là 'r' là cần thiết khi bạn muốn viết một công thức trong một chú giải/trục. – Titianne

+0

bạn đang sử dụng phiên bản python và mpl nào? Nếu tôi sử dụng 'ax.plot (x, y, label = r '$ \ sin (x) $')', tôi nhận được 'LaTeX' lỗi với '$ \\ sin $'. (Tôi là 2,7,3 python và mpl cạnh chảy máu) – tacaswell

+0

Tôi sử dụng Python 2.7.3 và Mpl 1.1.1. – Titianne

4

Khi viết mã cho nhãn đó là:

import pylab 

# code here 

pylab.plot(x,y,'f:', '$sin(x)$') 

Vì vậy, có lẽ pylab.legend('$latex here$')

Edit:

Các u là cho các chuỗi unicode, hãy thử chỉ r'$\latex$'