tôi đang tìm cách để giảm mật độ của các nhãn đánh dấu trên khác nhau âm mưu phụmatplotlib: làm thế nào để giảm mật độ của nhãn tick trong subplots?
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
from StringIO import StringIO
data = """\
a b c d
z 54.65 6.27 19.53 4.54
w -1.27 4.41 11.74 3.06
d 5.51 3.39 22.98 2.29
t 76284.53 -0.20 28394.93 0.28
"""
df = pd.read_csv(StringIO(data), sep='\s+')
gs = gridspec.GridSpec(3, 1,height_ratios=[1,1,4])
ax0 = plt.subplot(gs[0])
ax1 = plt.subplot(gs[1])
ax2 = plt.subplot(gs[2])
df.plot(kind='bar', ax=ax0,color=('Blue','DeepSkyBlue','Red','DarkOrange'))
df.plot(kind='bar', ax=ax1,color=('Blue','DeepSkyBlue','Red','DarkOrange'))
df.plot(kind='bar', ax=ax2,color=('Blue','DeepSkyBlue','Red','DarkOrange'),rot=45)
ax0.set_ylim(69998, 78000)
ax1.set_ylim(19998, 29998)
ax2.set_ylim(-2, 28)
ax0.legend().set_visible(False)
ax1.legend().set_visible(False)
ax2.legend().set_visible(False)
ax0.spines['bottom'].set_visible(False)
ax1.spines['bottom'].set_visible(False)
ax1.spines['top'].set_visible(False)
ax2.spines['top'].set_visible(False)
ax0.xaxis.set_ticks_position('none')
ax1.xaxis.set_ticks_position('none')
ax0.xaxis.set_label_position('top')
ax1.xaxis.set_label_position('top')
ax0.tick_params(labeltop='off')
ax1.tick_params(labeltop='off', pad=15)
ax2.tick_params(pad=15)
ax2.xaxis.tick_bottom()
d = .015
kwargs = dict(transform=ax0.transAxes, color='k', clip_on=False)
ax0.plot((-d,+d),(-d,+d), **kwargs)
ax0.plot((1-d,1+d),(-d,+d), **kwargs)
kwargs.update(transform=ax1.transAxes)
ax1.plot((-d,+d),(1-d,1+d), **kwargs)
ax1.plot((1-d,1+d),(1-d,1+d), **kwargs)
ax1.plot((-d,+d),(-d,+d), **kwargs)
ax1.plot((1-d,1+d),(-d,+d), **kwargs)
kwargs.update(transform=ax2.transAxes)
ax1.plot((-d,+d),(1-d/4,1+d/4), **kwargs)
ax1.plot((1-d,1+d),(1-d/4,1+d/4), **kwargs)
plt.show()
mà kết quả trong
Tôi muốn giảm nhãn đánh dấu vào hai ô phụ trên. Làm thế nào để làm điều đó ? Cảm ơn.
Phần thưởng: 1) cách loại bỏ đường chấm chấm trên y = 0 tại cơ sở của các thanh? 2) cách loại bỏ nhãn x-trick giữa subplot 0 và 1? 3) cách đặt mặt sau của ô thành độ trong suốt? (xem dòng trục y bị hỏng ở dưới cùng bên phải phía sau mặt sau của ô)
Điều này giúp giảm số lượng bọ ve, nhưng bây giờ tôi có ba bọ ve đầu tiên thay vì bọ ve ở vị trí chính xác. –
Dường như đối tượng MaxNLocator chỉ có thể được sử dụng cho một trục đơn. Nếu bạn sử dụng lại bộ định vị cho nhiều hơn một trục với các dấu khác nhau, các dấu tick cuối cùng sẽ được sử dụng cho tất cả các trục. – Mike