Python Seaborn Lineplot错误地尝试对已排序的数据进行排序

Python Seaborn Lineplot错误地尝试对已排序的数据进行排序,python,pandas,seaborn,Python,Pandas,Seaborn,每当我尝试对数据帧进行线图绘制时,seaborn默认情况下会决定它没有排序,从左到右绘制数据,而不是从开始到结束,即索引的方式,导致平滑数据中出现奇怪的之字形 这是我的数据帧的截图 下面是要绘制的代码: plt.figure(figsize=(16,6)) sns.lineplot(x ='cluster' , y = 'count', data= tmp, sort = False) 这是最终的情节截图: 我的问题是如何避免这种情况,让一个平滑的图形从上到下Seaborn自动对X轴上的值进行

每当我尝试对数据帧进行线图绘制时,seaborn默认情况下会决定它没有排序,从左到右绘制数据,而不是从开始到结束,即索引的方式,导致平滑数据中出现奇怪的之字形

这是我的数据帧的截图

下面是要绘制的代码:

plt.figure(figsize=(16,6))
sns.lineplot(x ='cluster' , y = 'count', data= tmp, sort = False)
这是最终的情节截图:


我的问题是如何避免这种情况,让一个平滑的图形从上到下

Seaborn自动对X轴上的值进行排序(如果它们是整数),因此解决方案是使用X轴上的索引并将排序标志设置为其默认值

plt.figure(figsize=(16,6))
sns.lineplot(x = tmp.index , y = 'cumsum', data= tmp) 

如果值是整数,Seaborn会自动对X轴中的值进行排序,因此解决方案是使用X轴中的索引,并将排序标志设置为其默认值

plt.figure(figsize=(16,6))
sns.lineplot(x = tmp.index , y = 'cumsum', data= tmp) 

你的问题是什么?@ImportanceOfBeingErnest我刚刚编辑了这个问题!抱歉,没有明确说明数据框中显示的几行似乎与绘制线的路径坐标精确对应。你希望这个图看起来像什么?您是否尝试过打印
df[df.cluster.argsort()]
?您的群集名称是整数,因此打印时会对其进行排序。您可以将群集名称转换为字符串或根据索引进行打印。但我不知道如何命名x轴上的600多个群集。我的数据帧已经排序,这就是为什么我将Sort=False设置为True,即使将其设置为True,也会给出相同的结果。你的问题是什么?@ImportanceOfBeingErnest我刚刚编辑了这个问题!抱歉,没有明确说明数据框中显示的几行似乎与绘制线的路径坐标精确对应。你希望这个图看起来像什么?您是否尝试过打印
df[df.cluster.argsort()]
?您的群集名称是整数,因此打印时会对其进行排序。您可以将群集名称转换为字符串或根据索引进行打印。但是我不知道如何命名x轴上的600多个集群。我的数据帧已经排序了,这就是为什么我将Sort=False设置为True,即使将其设置为True,它也会给出相同的结果。我认为这是一个误解。Seaborn不会对任何内容进行排序,除非通过
sort=True
要求它进行排序。我的意思是,如果在X轴上绘制整数,它们将显示为已排序,而不是数据框中的排序!哦,是的,因为默认情况下。是的,没错!而且,当使用索引时,如果您试图绘制累积和而不是计数,则可能会遇到问题。假设有三个条目具有相同的计数[7,8,9],并且在数据帧中,它们在索引中没有排序,这将导致总和行中出现异常!因此,我建议在计算累积量之前,使用sort_索引(axis=0)按索引排序。我认为这是一个误解。Seaborn不会对任何内容进行排序,除非通过
sort=True
要求它进行排序。我的意思是,如果在X轴上绘制整数,它们将显示为已排序,而不是数据框中的排序!哦,是的,因为默认情况下。是的,没错!而且,当使用索引时,如果您试图绘制累积和而不是计数,则可能会遇到问题。假设有三个条目具有相同的计数[7,8,9],并且在数据帧中,它们在索引中没有排序,这将导致总和行中出现异常!因此,我建议在计算总和之前,使用sort_索引(axis=0)按索引排序