Tôi có một biểu đồ đường đơn giản và cần di chuyển các dấu tích trục y từ phía bên trái (mặc định) của biểu đồ sang phía bên phải. Bất kỳ suy nghĩ về cách làm điều này?
Tôi có một biểu đồ đường đơn giản và cần di chuyển các dấu tích trục y từ phía bên trái (mặc định) của biểu đồ sang phía bên phải. Bất kỳ suy nghĩ về cách làm điều này?
Câu trả lời:
Sử dụng ax.yaxis.tick_right()
ví dụ:
from matplotlib import pyplot as plt
f = plt.figure()
ax = f.add_subplot(111)
ax.yaxis.tick_right()
plt.plot([2,3,4,5])
plt.show()
sharey=True
.
Câu trả lời của joaquin hoạt động, nhưng có tác dụng phụ là loại bỏ bọ ve từ phía bên trái của trục. Để khắc phục điều này, hãy liên hệ tick_right()
với cuộc gọi tới set_ticks_position('both')
. Một ví dụ đã sửa đổi:
from matplotlib import pyplot as plt
f = plt.figure()
ax = f.add_subplot(111)
ax.yaxis.tick_right()
ax.yaxis.set_ticks_position('both')
plt.plot([2,3,4,5])
plt.show()
Kết quả là một âm mưu có bọ ve ở cả hai bên, nhưng đánh dấu nhãn ở bên phải.
Chỉ trong trường hợp ai đó hỏi (như tôi đã làm), điều này cũng có thể xảy ra khi một người sử dụng subplot2grid. Ví dụ:
import matplotlib.pyplot as plt
plt.subplot2grid((3,2), (0,1), rowspan=3)
plt.plot([2,3,4,5])
plt.tick_params(axis='y', which='both', labelleft='off', labelright='on')
plt.show()
Nó sẽ hiển thị điều này:
ax.tick_params(axis='y', which='both', labelleft='off', labelright='on')
. Nhưng nó không di chuyểnylabel
plt.gca()
để lấy đối tượng trục hiện tại. Do đó bạn sẽ sử dụng:plt.gca().yaxis.set_label_position("right")