[ad_1]
大家好,
我对seaborn绘图有点陌生,当使用下面的代码时,这些数字看起来有点奇怪,我猜它们并不完全是这样的。 您能指导一下我的不足吗?
我尝试过的:
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. `sns.countplot` 中重叠的 x 刻度: 当“年龄”列中有太多唯一值时,通常会发生这种情况。 为了使绘图更具可读性,您可以增加图形大小或旋转 x 刻度标签。
2. `sns.violinplot`、`sns.boxenplot` 和 `sns.pairplot` 的问题: 这些问题可能是由于“年龄”和“票价”列中数据的性质而引起的。 “年龄”列可能具有 NaN 值,或者“票价”的范围可能太宽,导致绘图倾斜。
3. `sns.pairplot` 错误: 此错误可能是由于数据集中的非数字或 NaN 值造成的。 `sns.pairplot` 仅适用于数字列,不能很好地处理 NaN 值。
以下是一些代码调整和解决这些问题的技巧:
调整计数图
Python
plt.figure(figsize=(10, 6)) # Adjusting figure size sns.countplot(x='age', data=Titanic) plt.xticks(rotation=90) # Rotating x-ticks plt.show()
处理小提琴图和 Boxen 图
对于“sns.violinplot”和“sns.boxenplot”,确保“age”和“fare”列没有 NaN 值或可能扭曲绘图的异常值。 您可以通过删除 NaN 值或用集中趋势度量(平均值、中位数)填充它们来处理 NaN 值。
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()
修复配对图
要修复“sns.pairplot”,请确保所有列都是数字并处理 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()
您可以尝试这些调整,看看它们是否可以解决您的绘图问题吗? 如果您仍然遇到问题,特定的错误消息可以让您更深入地了解可能出现的问题。
[ad_2]
コメント