我希望能够在这样绘制时设置点大小:
sns.regplot(y=[1,3,4,2,5], x=[range(5)], data=df,
marker='o', color='red')
plt.show()
你们知道怎么做吗?
原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议
我希望能够在这样绘制时设置点大小:
sns.regplot(y=[1,3,4,2,5], x=[range(5)], data=df,
marker='o', color='red')
plt.show()
你们知道怎么做吗?
原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议
您甚至可以动态调整点的大小以表示三维。此代码使用与 OP 相同的数据,但将其包装在 DataFrame 中(seaborn 就是为此而设计的)并且还添加了第三个维度 z。
import seaborn as sns
import pandas as pd
data = pd.DataFrame({
'x': [x for x in range(5)],
'y': [1, 3, 4, 2, 5],
'z': [14, 14, 100, 16, 36]
})
sns.regplot(x='x', y='y', data=data, marker='o', color='red',
scatter_kws={'s': data['z']})
您可能可以想象如何以编程方式操作大小列表/数组,从而赋予您传达额外信息的强大功能。
如果您想将它们分成两组,就像在 FacetGrid 中一样,regplot 不会干净地处理该关键字映射。但是散点图可以。只需在下面绘制拟合线的 regplot,然后在其上绘制点的散点图。下面,我添加了一个 grp 变量并将其绘制到 FacetGrid 上。
import seaborn as sns
import pandas as pd
data = pd.DataFrame({
'x': [x for x in range(5)],
'y': [1, 3, 4, 2, 5],
'z': [14, 14, 100, 16, 36],
'grp': ['a', 'a', 'b', 'b', 'a'],
})
g = sns.FacetGrid(data=data, col='grp', margin_titles=True)
g.map_dataframe(sns.regplot, 'x', 'y', color='red', scatter=False)
g.map_dataframe(sns.scatterplot, 'x', 'y', size='z', marker='o', color='red')
原文由 mightypile 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答903 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
为此,您可以像这样为
regplot()
函数提供scatter_kws
arg: