Các vấn đề với việc vẽ đồ thị trên biển

lập trình


Xin chào tất cả mọi người,

Tôi hơi mới với việc vẽ sơ đồ trên biển và khi sử dụng đoạn mã sau, các số liệu trông hơi kỳ lạ và tôi đoán không chính xác chúng phải là gì. Bạn có thể vui lòng hướng dẫn nơi tôi đang thiếu?

Những gì tôi đã thử:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import plotly as px

Titanic=sns.load_dataset("titanic")
sns.countplot(x='age', data=Titanic) # x-ticks are overlapping

sns.violinplot(data=Titanic, x="age", y="fare", hue="class") # same problem
sns.pairplot(Titanic) # give and error
sns.boxenplot(data=Titanic,x="age", y="fare", hue="class") # graph is too bad as well as same error as previous.
sns.violinplot(data=Titanic, x="age", y="fare", hue="class") # graph is too bad as well as same error as previous.
sns.countplot(x='age', data=Titanic) # x-ticks are overlapping

Giải pháp 1

Bạn cần trợ giúp với các lô Seaborn của mình. Hãy giải quyết từng vấn đề một:

1. Chồng chéo các dấu x trong `sns.countplot`: Điều này thường xảy ra khi có quá nhiều giá trị duy nhất trong cột ‘tuổi’. Để làm cho biểu đồ dễ đọc hơn, bạn có thể tăng kích thước hình hoặc xoay nhãn dấu x.

2. Các vấn đề với `sns.violinplot`, `sns.boxenplot` và `sns.pairplot`: Những vấn đề này có thể phát sinh do tính chất của dữ liệu trong cột ‘tuổi’ và ‘giá vé’. Cột ‘tuổi’ có thể có giá trị NaN hoặc phạm vi ‘giá vé’ có thể quá rộng, gây ra các ô bị lệch.

3. Lỗi với `sns.pairplot`: Lỗi này có thể là do giá trị không phải số hoặc NaN trong tập dữ liệu. `sns.pairplot` chỉ hoạt động với các cột số và không thể xử lý tốt các giá trị NaN.

Dưới đây là một số điều chỉnh mã và mẹo để giải quyết những vấn đề này:

Điều chỉnh Countplot

Python
plt.figure(figsize=(10, 6)) # Adjusting figure size
sns.countplot(x='age', data=Titanic)
plt.xticks(rotation=90)  # Rotating x-ticks
plt.show()

Xử lý lô violin và Boxen

Đối với `sns.violinplot` và `sns.boxenplot`, hãy đảm bảo rằng cột ‘tuổi’ và ‘giá vé’ không có giá trị NaN hoặc giá trị ngoại lệ có thể làm sai lệch biểu đồ. Bạn có thể xử lý các giá trị NaN bằng cách loại bỏ chúng hoặc điền vào chúng bằng thước đo xu hướng trung tâm (trung bình, trung vị).

Python
# Handling NaN values
Titanic = Titanic.dropna(subset=['age', 'fare'])

# Now try plotting
sns.violinplot(data=Titanic, x="age", y="fare", hue="class")
plt.show()

sns.boxenplot(data=Titanic, x="age", y="fare", hue="class")
plt.show()

Sửa lỗi cặp đôi

Để sửa lỗi `sns.pairplot`, hãy đảm bảo tất cả các cột đều là số và xử lý các giá trị NaN.

Python
# Dropping non-numeric columns for pairplot
numeric_cols = Titanic.select_dtypes(include=[np.number]).columns.tolist()
Titanic_numeric = Titanic[numeric_cols].dropna()

sns.pairplot(Titanic_numeric)
plt.show()

Bạn có thể thử những điều chỉnh này và xem liệu chúng có giải quyết được vấn đề với lô đất của bạn không? Nếu bạn vẫn gặp sự cố, các thông báo lỗi cụ thể có thể cung cấp thêm thông tin chi tiết về những gì có thể xảy ra.

コメント

タイトルとURLをコピーしました