2013-06-25 38 views
5

Tôi muốn ẩn các nhãn đánh dấu chính trên trục x của tôi trong khi vẫn giữ lại các nhãn nhỏ của nó. Ý tưởng là ngày của tôi được hiển thị ở giữa các ve lớn thay vì trên chúng theo mặc định. Tôi đã thấy một vài câu trả lời khác cho các câu hỏi tương tự như câu hỏi này và đã cố gắng sử dụng cách của họ để ẩn ve lớn tuy nhiên tôi không có nhiều may mắn nhận được nó làm việc ở tất cả. đồ thị của tôi hiện trông như thế này:Ẩn các nhãn đánh dấu chính trong khi hiển thị các nhãn đánh dấu nhỏ trong matplotlib

Major and minor ticks for November

Đây là mã định dạng ban đầu tôi đã cho đồ thị của tôi trước khi tôi quyết định rằng tôi muốn đưa các nhãn trên ve nhỏ.

day_fmt = '%d' 
myFmt = mdates.DateFormatter(day_fmt) 
ax.xaxis.set_major_formatter(myFmt) 
ax.xaxis.set_major_locator(matplotlib.dates.DayLocator(interval=1))  

Tôi đã cố gắng để bọ ve nhỏ xuất hiện trong khi ẩn bọ ve lớn bằng cách sử dụng mã bên dưới. Ở đây tôi đã sử dụng một bộ định vị giờ tại 12:00 để có được điểm giữa một ngày:

import matplotlib.ticker 
ax.xaxis.set_major_formatter(ticker.NullFormatter()) #Clear major tick labels 
ax.xaxis.set_minor_formatter(myFmt) 
ax.xaxis.set_minor_locator(matplotlib.dates.HourLocator(interval=12)) 

Nhưng đối với một số lý do tôi nhận được đồ thị trông giống như hình trên - với cả hai nhãn đánh dấu x-trục lớn và nhỏ . Tôi cũng đã thử xóa các bọ ve không mong muốn bằng cách sử dụng ax.set_xticks([]). Có ai có vấn đề tương tự và sửa lỗi này hay biết cách khắc phục điều này?

Trả lời

6

Bạn có thể thử

import matplotlib.pyplot as plt 

... 
plotting nitty gritty 
... 

plt.setp(ax.get_xmajorticklabels(), visible=False) 
plt.show() 
+0

gì 'setp() 'làm gì? –

+0

['setp (đối tượng, thuộc tính = giá trị)'] (http://matplotlib.org/api/_as_gen/matplotlib.artist.setp.html#matplotlib.artist.setp) có thể được sử dụng để * đặt * thuộc tính của 'đối tượng' thành' giá trị'. – wflynny

Các vấn đề liên quan