散点图错误:“x 和 y 的大小必须相同”但它们的大小相同

Posted

技术标签:

【中文标题】散点图错误:“x 和 y 的大小必须相同”但它们的大小相同【英文标题】:Scatterplot error : "x and y must be the same size" but they have the same size 【发布时间】:2022-01-12 15:08:28 【问题描述】:

我想用数据框制作散点图:“df_death_mois1”。但它不起作用。错误消息是:“x 和 y 的大小必须相同”。你能帮帮我吗?

import pandas as pd 
import matplotlib.pyplot as plt
members = pd.read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-09-22/members.csv")
expeditions = pd.read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-09-22/expeditions.csv")
expeditions['highpoint_date'] = pd.to_datetime(expeditions['highpoint_date'])
lesmois = expeditions['highpoint_date'].dt.month
expeditions["mois"] = lesmois
expeditions
 df_members_mois = pd.merge(members,expeditions[['expedition_id','mois']], on='expedition_id', how='inner')
 df_death_mois = df_members_mois[df_members_mois["death_cause"]=="Avalanche"]
 df_death_mois
 df_death_mois1 = df_death_mois.groupby("mois")['death_cause'].count()
 df_death_mois1 = df_death_mois1.to_frame()
 df_death_mois1
 plt.scatter(x="mois", y = "death_cause", data = df_death_mois1)
 plt.title('scatterplot')
 plt.xlabel('x')
 plt.ylabel('y')
 plt.show()

【问题讨论】:

将此plt.scatter(x="mois", y = "death_cause", data = df_death_mois1) 更改为df_death_mois1.plot.scatter(x='mois', y='death_cause') 不行 KeyError: 'mois' 是索引,去掉x选项。 expeditions 中没有名为“mois”的列。你到底想合并什么? 【参考方案1】:

reset_index 然后拨打plot.scatter:

>>> df_death_mois1.reset_index().plot.scatter(x="mois", y="death_cause")

使用matplotlib.pyplot,您可以使用:

>>> plt.scatter(x=df_death_mois1.index, y=df_death_mois1["death_cause"])

【讨论】:

非常感谢

以上是关于散点图错误:“x 和 y 的大小必须相同”但它们的大小相同的主要内容,如果未能解决你的问题,请参考以下文章

PyPlot 错误“X 和 Y 的大小必须相同”,我在网上找到的所有内容都不起作用

ValueError:在Python中创建KMeans模型时x和y的大小必须相同

ValueError: x 和 y 的大小必须相同

具有不同类别的 Libreoffice 散点图

熊猫散点图日期时间

ValueError:尝试绘制 SVM 时 x 和 y 的大小必须相同