مشاكل مع التخطيط البحري


أهلا بالجميع،

أنا جديد بعض الشيء في التخطيط البحري، وعند استخدام الكود التالي، تبدو الأشكال غريبة بعض الشيء ولا أعتقد بالضبط ما يجب أن تكون عليه. هل يمكنك إرشادي إلى حيث أفتقر؟

ما حاولت:

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

الحل 1

أنت بحاجة إلى مساعدة في مخططات Seaborn الخاصة بك. دعونا نتناولها واحدة تلو الأخرى:

1. تداخل علامات x في `sns.countplot`: يحدث هذا عادةً عند وجود عدد كبير جدًا من القيم الفريدة في عمود “العمر”. لجعل الحبكة أكثر قابلية للقراءة، يمكنك إما زيادة حجم الشكل أو تدوير تسميات علامة x.

2. مشاكل مع `sns.violinplot` و`sns.boxenplot` و`sns.pairplot`: قد تنشأ هذه المشكلات بسبب طبيعة البيانات الموجودة في عمودي “العمر” و”السعر”. قد يحتوي عمود “العمر” على قيم NaN، أو قد يكون نطاق “الأجرة” واسعًا جدًا، مما يتسبب في انحراف المخططات.

3. خطأ في `sns.pairplot`: قد يكون هذا الخطأ بسبب قيم غير رقمية أو NaN في مجموعة البيانات. يعمل `sns.pairplot` فقط مع الأعمدة الرقمية ولا يمكنه التعامل مع قيم NaN بشكل جيد.

فيما يلي بعض تعديلات التعليمات البرمجية والنصائح لحل هذه المشكلات:

ضبط الكونتبلوت

بايثون
plt.figure(figsize=(10, 6)) # Adjusting figure size
sns.countplot(x='age', data=Titanic)
plt.xticks(rotation=90)  # Rotating x-ticks
plt.show()

التعامل مع قطع الكمان والبوكسين

بالنسبة إلى `sns.violinplot` و`sns.boxenplot`، تأكد من أن عمودي “العمر” و”الأجرة” لا يحتويان على قيم NaN أو قيم متطرفة يمكن أن تشوه المخطط. يمكنك التعامل مع قيم NaN عن طريق إزالتها أو ملئها بمقياس الاتجاه المركزي (المتوسط).

بايثون
# 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()

إصلاح مخطط الاقتران

لإصلاح `sns.pairplot`، تأكد من أن جميع الأعمدة رقمية وتتعامل مع قيم NaN.

بايثون
# 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()

هل يمكنك تجربة هذه التعديلات ومعرفة ما إذا كانت ستحل المشكلات المتعلقة بمخططاتك؟ إذا كنت لا تزال تواجه مشكلات، فقد توفر رسائل الخطأ المحددة مزيدًا من المعلومات حول الأخطاء التي قد تحدث.

コメント

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