2009-08-03 28 views
40

Tôi đang sử dụng matplotlib để tạo thanh dọc (dọc). Vấn đề là nhãn của tôi khá dài. Có cách nào để hiển thị chúng theo chiều dọc, hoặc trong thanh hoặc phía trên nó hoặc bên dưới nó?Barchart với nhãn dọc trong python/matplotlib

Trả lời

58

Bạn có nghĩa là một cái gì đó như thế này:

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

?

Nói chung, để hiển thị bất kỳ văn bản nào trong matplotlib có hướng dọc, bạn có thể thêm từ khóa rotation='vertical'.

Đối với tùy chọn tiếp tục, bạn có thể nhìn vào sự giúp đỡ (matplotlib.pyplot.text)

Chức năng yticks âm mưu ve trên trục y; Tôi không chắc chắn liệu ban đầu bạn có nghĩa là chức năng này hay chức năng ylabel, nhưng thủ tục là alwasy giống nhau, bạn phải thêm rotation = 'vertical'

Có lẽ bạn cũng có thể tìm thấy các tùy chọn 'verticalalignment' và 'horizontalalignment' , cho phép bạn xác định cách căn chỉnh văn bản với ve hoặc các yếu tố khác.

+0

Lưu ý rằng tôi không sử dụng cốt truyện(); nhưng thanh(). Nhưng rotation = 'vertical' có vẻ là chìa khóa. Tuy nhiên, điều này vẫn không vẽ ve trong các thanh. – phihag

+0

Bạn có nghĩa là các con ve trong trục xy? Hãy xem xét chức năng lưới. Ví dụ lưới (ls = '', marker = 'v'). lưới() điều khiển âm mưu của lưới trên trục xy; với tùy chọn đánh dấu bạn xác định stile cho các điểm đánh dấu, và với ls = '' bạn sẽ có một lưới vô hình. – dalloliogm

+0

@dalloliogm âm thanh tốt – phihag

5

Tôi khuyên bạn nên xem the matplotlib gallery. Ít nhất hai trong số những ví dụ dường như có liên quan:

  • text_rotation.py để tìm hiểu cách bố trí văn bản làm việc
  • barchart_demo2.py, một ví dụ về một biểu đồ thanh với cách bố trí hơi phức tạp hơn ví dụ cơ bản nhất.
1

Trong Jupyter Máy tính xách tay, bạn có thể sử dụng một cái gì đó như thế này

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

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

hoặc bạn có thể sử dụng:

plt.xticks(rotation=90)