وضع خط جديد في ملصق Matplotlib مع Tex في Python؟
-
27-09-2019 - |
سؤال
كيف يمكنني إضافة سطر جديد إلى ملصق المؤامرة (على سبيل المثال Xlabel أو Ylabel) في Matplotlib؟ فمثلا،
plt.bar([1, 2], [4, 5])
plt.xlabel("My x label")
plt.ylabel(r"My long label with $\Sigma_{C}$ math \n continues here")
من الناحية المثالية ، أود أن يتركزوا على y أيضًا. هل هناك طريقة للقيام بذلك؟ من المهم أن يكون لكل من العلامة تكس (مغلق في "$") والخط الجديد.
المحلول
مثالك هو بالضبط كيف يتم ذلك ، يمكنك استخدامه \n
. تحتاج إلى خلع بادئة R على الرغم من أن Python لا يعاملها كسلسلة خام
نصائح أخرى
يمكنك الحصول على أفضل ما في العالمين: "الهروب" التلقائي من أوامر اللاتكس و الخطوط الجديدة:
plt.ylabel(r"My long label with unescaped {\LaTeX} $\Sigma_{C}$ math"
"\n" # Newline: the backslash is interpreted as usual
r"continues here with $\pi$")
(بدلاً من استخدام ثلاثة أسطر ، يعد فصل السلاسل بمساحات واحدة خيارًا آخر).
في الواقع ، يقوم Python تلقائيًا بتسلسل حرفيات السلسلة التي تتبع بعضها البعض ، ويمكنك مزج السلاسل الخام (r"…"
) والسلاسل مع استيفاء الشخصية ("\n"
).
plt.bar([1, 2], [4, 5])
plt.xlabel("My x label")
plt.ylabel(r"My long label with $\Sigma_{C}$ math" + "\n" + "continues here")
ما عليك سوى تسلسل الأوتار بخط جديد ليس في شكل سلسلة خام.
ينشئ نص Matplotlib Python التالي نصًا مع سطر جديد
ax.text(10, 70, 'shock size \n $n-n_{fd}$')
ما يلي ليس لديه خط جديد. لاحظ R قبل النص
ax.text(10, 70, r'shock size \n $n-n_{fd}$')