2010-06-23 39 views
62

Tôi vẽ một âm mưu bằng cách sử dụng matplotlib và python giống như mã mẫu bên dưới.cốt truyện với văn bản tùy chỉnh cho các điểm trục x

x = array([0,1,2,3]) 
y = array([20,21,22,23]) 
plot(x,y) 
show() 

Vì nó là mã ở trên vào trục x tôi sẽ thấy giá trị rút ra 0.0, 0.5, 1.0, 1.5 ví dụ: cùng một giá trị của các giá trị x tài liệu tham khảo của tôi.

Có cách nào để ánh xạ từng điểm của x thành một chuỗi khác không? Vì vậy, ví dụ tôi muốn trục x hiển thị tên tháng (chuỗi Jun, July,...) hoặc các chuỗi khác như tên người ("John", "Arnold", ...) hoặc thời gian đồng hồ ("12:20", "12:21", "12:22", ..).

Bạn có biết tôi có thể làm gì hoặc có chức năng gì để xem?
Vì mục đích của tôi, có thể là matplotlib.ticker trợ giúp?

Trả lời

117

Bạn có thể tự thiết lập xticks (và yticks) sử dụng pylab.xticks:

import matplotlib.pyplot as plt 
import numpy as np 

x = np.array([0,1,2,3]) 
y = np.array([20,21,22,23]) 
my_xticks = ['John','Arnold','Mavis','Matt'] 
plt.xticks(x, my_xticks) 
plt.plot(x, y) 
plt.show() 

+1

Great MAN !!! Tôi cảm ơn bạn rất nhiều! – user311906

+24

'rotation' cũng đôi khi hữu ích:' plt.xticks (phạm vi (5), ["một số", "từ", "như", "x", "bọ ve"], xoay = 45) ' – Adobe

+2

Và cách phân tán các mục đồng đều dọc theo trục x? Giả sử trục x của tôi có 1 triệu điểm trong nội bộ và tôi muốn chỉ hiển thị John, Arnold, Mavis và Matt dọc theo trục phân bố đồng đều? – nottinhill

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