سؤال

كيف يمكنني إضافة سطر جديد إلى ملصق المؤامرة (على سبيل المثال 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}$')
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top