سؤال

أنا أستخدم matplotlib لإنشاء مخطط شريطي (عمودي).المشكلة هي أن تسمياتي طويلة نوعًا ما.هل هناك طريقة لعرضها عموديا، سواء في الشريط أو فوقه أو تحته؟

هل كانت مفيدة؟

المحلول

هل تعني شيئا مثل هذا:

>>> from matplotlib import *
>>> plot(xrange(10))
>>> yticks(xrange(10), rotation='vertical')

في عام، لإظهار أي نص في matplotlib مع اتجاه عمودي، يمكنك إضافة rotation='vertical' الكلمة.

لمزيد من الخيارات، يمكنك إلقاء نظرة على مساعدة (matplotlib.pyplot.text)

وظيفة yticks المؤامرات القراد على المحور الصادي. ولست متأكدا ما إذا كنت تعني في الأصل هذا أو وظيفة ylabel، ولكن هذا الإجراء هو الواسي نفسه، لديك لإضافة دوران = 'عمودي'

وربما يمكنك أن تجد أيضا من المفيد الخيارات "verticalalignment" و "horizontalalignment"، والذي يسمح لك لتحديد كيفية محاذاة النص فيما يتعلق القراد أو العناصر الأخرى.

نصائح أخرى

في Jupyter المحمول قد كنت تستخدم شيئا من هذا القبيل

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

plt.xticks(rotation='vertical')
plt.plot(np.random.randn(100).cumsum())

وأو يمكنك استخدام:

plt.xticks(rotation=90)

أود أن أقترح النظر في معرض ماتبلوتليب.يبدو أن اثنين على الأقل من الأمثلة ذات صلة:

  • text_rotation.py لفهم كيفية عمل تخطيط النص
  • barchart_demo2.py, ، مثال لمخطط شريطي ذو تخطيط أكثر تعقيدًا إلى حد ما من المثال الأساسي.

يرجى التحقق من هذا الارتباط: https://python-graph-gallery.com/7-custom-barplot -layout /

import matplotlib.pyplot as plt

heights = [10, 20, 15]
bars = ['A_long', 'B_long', 'C_long']
y_pos = range(len(bars))
plt.bar(y_pos, heights)
# Rotation of the bars names
plt.xticks(y_pos, bars, rotation=90)

وستكون النتيجة مثل هذه

ونأمل أن يساعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top