Seaborn lineplot - 连接散点图的点
Seaborn lineplot - connecting dots of scatterplot
我对 sns 线图和散点图有疑问。基本上我想要做的是连接散点图的点以呈现连接映射点的最近线。当面对具有相同 x 轴值的点时,线图会以某种方式改变宽度。我希望线图一直是相同的实线。
代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
data = {'X': [13, 13, 13, 12, 11], 'Y':[14, 11, 13, 15, 20], 'NumberOfPlanets':[2, 5, 2, 1, 2]}
cts = pd.DataFrame(data=data)
plt.figure(figsize=(10,10))
sns.scatterplot(data=cts, x='X', y='Y', size='NumberOfPlanets', sizes=(50,500), legend=False)
sns.lineplot(data=cts, x='X', y='Y',estimator='max', color='red')
plt.show()
结果:
有什么想法吗?
编辑:
如果我尝试使用 pyplot,它也不起作用:
代码:
plt.plot(cts['X'], cts['Y'])
结果:
我需要一条线,它连接最近的点(基本上是图像一上显示的,但具有相同的实线)。
好的,我终于想通了。线图如此混乱的原因是数据没有正确排序。当我按 'Y' 值对数据帧数据进行排序时,结果令人满意。
data = {'X': [13, 13, 13, 12, 11], 'Y':[14, 11, 13, 15, 20], 'NumberOfPlanets':[2, 5, 2, 1, 2]}
cts = pd.DataFrame(data=data)
cts = cts.sort_values('Y')
plt.figure(figsize=(10,10))
plt.scatter(cts['X'], cts['Y'], zorder=1)
plt.plot(cts['X'], cts['Y'], zorder=2)
plt.show()
现在可以了。还在其他类似的散点上对其进行了测试。一切都好 :)
谢谢!
我对 sns 线图和散点图有疑问。基本上我想要做的是连接散点图的点以呈现连接映射点的最近线。当面对具有相同 x 轴值的点时,线图会以某种方式改变宽度。我希望线图一直是相同的实线。
代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
data = {'X': [13, 13, 13, 12, 11], 'Y':[14, 11, 13, 15, 20], 'NumberOfPlanets':[2, 5, 2, 1, 2]}
cts = pd.DataFrame(data=data)
plt.figure(figsize=(10,10))
sns.scatterplot(data=cts, x='X', y='Y', size='NumberOfPlanets', sizes=(50,500), legend=False)
sns.lineplot(data=cts, x='X', y='Y',estimator='max', color='red')
plt.show()
结果:
有什么想法吗?
编辑:
如果我尝试使用 pyplot,它也不起作用: 代码:
plt.plot(cts['X'], cts['Y'])
结果:
我需要一条线,它连接最近的点(基本上是图像一上显示的,但具有相同的实线)。
好的,我终于想通了。线图如此混乱的原因是数据没有正确排序。当我按 'Y' 值对数据帧数据进行排序时,结果令人满意。
data = {'X': [13, 13, 13, 12, 11], 'Y':[14, 11, 13, 15, 20], 'NumberOfPlanets':[2, 5, 2, 1, 2]}
cts = pd.DataFrame(data=data)
cts = cts.sort_values('Y')
plt.figure(figsize=(10,10))
plt.scatter(cts['X'], cts['Y'], zorder=1)
plt.plot(cts['X'], cts['Y'], zorder=2)
plt.show()
现在可以了。还在其他类似的散点上对其进行了测试。一切都好 :) 谢谢!