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 Show 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) 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ênax = 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ốtHã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íchGiả 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']) 2ax = sns.countplot(x = df['col1']) 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, 15Còn với cột có số lượng cao hơn thì sao? ax = sns.countplot(x = df['col2']) 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, 30Tó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']) 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']) 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ốngMộ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ốnChỉ đị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ìuax = sns.countplot(x=df['col1']) 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']) 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 . |