Python 如何在Matplotlib中获取散点图的最小(或最大)边界

Python 如何在Matplotlib中获取散点图的最小(或最大)边界,python,dataframe,matplotlib,Python,Dataframe,Matplotlib,假设我有数千个随机的(x,y)数据点,我将xs和ys存储在数据框的两列中。需要注意的是,所有的xs都是整数,而ys都是连续数。如果我使用Matplotlib在散点图中绘制它们,它如下所示。现在我想得到图的最小边界,我用红色曲线描绘了它。我该怎么做?为了清楚起见,我想得到(x,y)对的索引,每个x的最小y值,因此索引的长度应该等于len(set(x)) 是df.grouby('x').min()你想要什么 一个完整的例子: import numpy as np import matplotlib.

假设我有数千个随机的
(x,y)
数据点,我将
x
s和
y
s存储在数据框的两列中。需要注意的是,所有的
x
s都是整数,而
y
s都是连续数。如果我使用Matplotlib在散点图中绘制它们,它如下所示。现在我想得到图的最小边界,我用红色曲线描绘了它。我该怎么做?为了清楚起见,我想得到
(x,y)
对的索引,每个
x
的最小
y
值,因此索引的长度应该等于
len(set(x))

df.grouby('x').min()
你想要什么

一个完整的例子:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({'x': np.random.randint(10, size=1000), 'y': np.random.rand(1000)})
df.plot.scatter('x', 'y', color='k')
df.groupby('x').min().plot(ax=plt.gca(), color='red')
要获取原始数据帧的索引,您可以使用
groupby
上的
idxmin
,例如

df.groupby('x').idxmin()
尝试:


谢谢你的回答。绘图很好,但我真正需要的是索引列表。
df.grouby('x').min()
将为您提供x和y最小值的数据帧。你需要原始索引吗?需要。确切地我想要原始数据框中的最小数据点的索引,而不是新的数据框好的,我已经编辑了答案。我认为,
idxmin
就是你之后的样子,我认为应该是
df[1].groupby('x').idxmin()
,因为我想要y值的最小值,但这一切都很好。谢谢你的回答。真的很有帮助。谢谢你的回答。情节很好,但我真正需要的是索引列表。
import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({'A':[1,2,3,1,2,3],'B':[1.3,2.6,3.2,5.6,4.5,3.1]})
fig, ax = plt.subplots()
ax.plot(df.A, df.B, '-')
temp = df.groupby('A')['B'].min().reset_index()
ax.plot(temp.A, temp.B, 'r-')