Plt xticks làm gì trong python?

Gần đây tôi đang tạo trực quan hóa trong Seaborn, dựa trên Matplotlib và khi gắn nhãn trục x, tôi không nhận được kết quả như mong đợi. Tôi quyết định lùi lại một bước và thử nghiệm xem xticks và xticklabels thực sự làm gì trong một hình ảnh trực quan

Hãy phá vỡ nó

Một âm mưu cơ bản

Đầu tiên, tôi đã tạo một khung dữ liệu có hai cột gồm 100 hàng. Cột đầu tiên gán cho mỗi hàng một số ngẫu nhiên từ 1 đến 15, cột thứ hai gán cho mỗi hàng một số ngẫu nhiên từ 16 đến 30

np.random.seed(0)
col1 = np.random.randint(1, 16, size=100).tolist()
col2 = np.random.randint(16, 31, size=100).tolist()
df = pd.DataFrame({'col1': col1, 'col2': col2})

Sử dụng phương pháp

ax = sns.countplot(x = df['col1'])
0 của Seaborn, tôi đã kiểm tra cột đầu tiên

ax = sns.countplot(x = df['col1'])

Hình ảnh của tác giả

Khi tôi chạy một ô có

ax = sns.countplot(x = df['col1'])
1, tôi nhận được 12, phù hợp với hình dung của tôi. Nói cách khác, 12 hàng trong cột 100 hàng này là một phần của danh mục bin 4. Càng xa càng tốt

Hãy nhìn vào cột có số cao hơn

ax = sns.countplot(x = df['col2'])

Hình ảnh của tác giả

Kết quả trông tương tự như kết quả đầu tiên. Các nhãn hiển thị các số từ 16 đến 30 như mong đợi

Thêm một số dấu tích

Giả sử thay vào đó là 15 giá trị tiềm năng dọc theo trục x, tôi có 100?

Điểm của thuộc tính

ax = sns.countplot(x = df['col1'])
2 là chỉ hiển thị các giá trị tại các điểm nhất định dọc theo trục x. Vì vậy, hãy thử hiển thị chỉ ba giá trị cách đều nhau bằng cách sử dụng
ax = sns.countplot(x = df['col1'])
2

ax = sns.countplot(x = df['col1'])
ax.set(xticks=([0, 7, 14]))

Hình ảnh của tác giả

Lưu ý cách trong

ax = sns.countplot(x = df['col1'])
4, các con số đề cập đến các chỉ số. Số 1 nằm ở chỉ mục
ax = sns.countplot(x = df['col1'])
5 của
ax = sns.countplot(x = df['col1'])
2, sau đó nó chuyển đến chỉ mục
ax = sns.countplot(x = df['col1'])
7 là số 8 trong khung dữ liệu, sau đó nó chuyển đến chỉ mục
ax = sns.countplot(x = df['col1'])
8 là số 15 trong khung dữ liệu. Nhưng hãy xem cách xticks đếm ngược 1, 2, 3 chứ không phải 1, 8, 15

Còn với cột có số lượng cao hơn thì sao?

ax = sns.countplot(x = df['col2'])
ax.set(xticks=[0, 7, 14])

Hình ảnh của tác giả

Một lần nữa, trong

ax = sns.countplot(x = df['col1'])
4, các con số đề cập đến các chỉ số. Số 16 nằm ở chỉ mục
ax = sns.countplot(x = df['col1'])
5 của
ax = sns.countplot(x = df['col1'])
2, sau đó nó chuyển đến chỉ mục
ax = sns.countplot(x = df['col1'])
7 là số 23 trong khung dữ liệu, sau đó nó chuyển đến chỉ mục
ax = sns.countplot(x = df['col1'])
8 là số 30 trong khung dữ liệu. Các giá trị của trực quan hóa vẫn ổn dọc theo trục y, nhưng hãy xem cách xticks đếm ngược 16, 17, 18 chứ không phải 16, 23, 30

Tóm lại, việc đếm bắt đầu từ giá trị của chỉ mục đầu tiên, điều này hợp lý. Nhưng sau đó, dọc theo trục x, nhãn tăng lên 1 mỗi lần, bất kể giá trị của thùng phân loại đó là bao nhiêu

Và tôi nên lưu ý, nó chỉ tăng lên 1 mỗi lần, bởi vì các thùng của tôi là các số nguyên tăng dần một. Tôi đã tạo một cột mới, col3, với 100 số ngẫu nhiên từ 1 đến 30 chỉ bao gồm các số chẵn

Cốt truyện tiêu chuẩn là những gì bạn mong đợi

ax = sns.countplot(x = df['col3'])

Hình ảnh của tác giả

Khi tôi chọn các chỉ số giống như trong các ví dụ khác, xticks sẽ giảm đi 2

ax = sns.countplot(x = df['col3'])
ax.set(xticks=[0, 7, 14])

Hình ảnh của tác giả

Và xticks đếm ngược 2, 4, 6 chứ không phải 2, 16, 30

Vì tò mò, hãy xem điều gì sẽ xảy ra nếu tôi đặt xticks ngoài giá trị của khung dữ liệu. Sử dụng lại cột có số thấp hơn

ax = sns.countplot(x=df['col1'])
ax.set(xticks=([0, 7, 14, 21]))

Hình ảnh của tác giả

Trong hình ảnh trực quan này, tôi đã thêm một chỉ mục khác,

ax = sns.countplot(x = df['col2'])
4, vào danh sách xticks, một chỉ mục cao hơn bất kỳ chỉ mục nào đề cập đến giá trị thùng danh mục. Như bạn có thể thấy, nó mở rộng trục x để hiển thị một vùng trống

Một điều nữa. Mặc dù danh sách được chuyển đến

ax = sns.countplot(x = df['col2'])
5 đề cập đến các chỉ số, nhưng bạn có thể sử dụng số float để đánh dấu giữa các chỉ số nếu muốn

Chỉ định Nhãn

Để giành quyền kiểm soát nội dung nhãn hiển thị, hãy đặt thuộc tính

ax = sns.countplot(x = df['col2'])
6 của rìu

ax = sns.countplot(x=df['col1'])
ax.set(xticks=([0, 7, 14]))
ax.set(xticklabels = (['one', 'eight', 'fifteen']))

Hình ảnh của tác giả

Mát mẻ. Tôi đã nhận được kết quả mà tôi đang tìm kiếm. Chuỗi hoặc số có thể được sử dụng. Lưu ý rằng nếu tôi không đặt

ax = sns.countplot(x = df['col1'])
2 cho rìu tại một số thời điểm, thì ba nhãn sẽ được đặt trong ba chỉ số đầu tiên hoặc [0, 1, 2]

Ngoài ra, hãy lưu ý trong tất cả các ví dụ trên rằng tôi đã sử dụng hàm

ax = sns.countplot(x = df['col2'])
8 chung và sau đó chuyển đối số từ khóa

Để kiểm soát tốt hơn bọ ve và nhãn của chúng, hãy sử dụng

ax = sns.countplot(x = df['col2'])
9 và
ax = sns.countplot(x = df['col1'])
ax.set(xticks=([0, 7, 14]))
0. Với cái sau, bạn có thể chỉ định các thuộc tính phông chữ khác nhau, xoay nhãn, v.v.

PLT Xticks dùng để làm gì?

Hàm xticks(). Hàm annotate() trong mô-đun pyplot của thư viện matplotlib được sử dụng để lấy và đặt các vị trí đánh dấu hiện tại và nhãn của trục x .

Việc sử dụng Xticks() và Yticks() trong vẽ đồ thị là gì?

Hàm xticks() và yticks() lấy một đối tượng danh sách làm đối số. Các phần tử trong danh sách biểu thị các vị trí trên hành động tương ứng nơi các dấu tích sẽ được hiển thị. Phương pháp này sẽ đánh dấu các điểm dữ liệu tại các vị trí đã cho bằng dấu tích .

Sự khác biệt giữa Xlim và Xticks trong Python là gì?

xtick về cơ bản là một tên miền phụ trong xlim của bạn (phạm vi x của bạn). "Ticks" không gì khác hơn là các điểm rời rạc trong giới hạn của bạn được tạo bởi Bộ định vị bạn đã chọn.

Sự khác biệt giữa Xlabel và Xticks là gì?

xlabel đề cập đến tên của trục x. xticklabel đề cập đến các giá trị khoảng dọc theo trục x .