我正在使用一个标准的钻石数据集,我需要创建一个以下类型的图:
目前我所拥有的只有1)
import seaborn as sns
import matplotlib.pyplot as plt
# load the data
df = sns.load_dataset('diamonds')
plt.figure(figsize=(12, 8), dpi=200)
scatterplot = sns.scatterplot(data=df, x='carat', y='price', hue='cut', palette='viridis')
sns.lineplot(data=df, x='carat', y='price', hue='cut', palette='viridis', ax=scatterplot)
plt.xlabel('Carat')
plt.ylabel('Price')
plt.title('Scatter Plot of Price vs. Carat with Curved Lines (Viridis Palette)')
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left')
plt.show()
(二)
plt.figure(figsize=(12, 8), dpi=200)
cut_categories = df['cut'].unique()
for cut in cut_categories:
data = df[df['cut'] == cut]
sns.regplot(data=data, x='carat', y='price', scatter_kws={'s': 10}, label=cut)
plt.xlabel('Carat')
plt.ylabel('Price')
plt.title('Regression Plot of Price vs. Carat by Cut')
plt.legend(title='Cut')
plt.show()
我怎样才能得到一个多项式拟合的图形?
1条答案
按热度按时间wbgh16ku1#
数据和导入
np.polyfit
和np.poly1d
regplot
和lmplot
在order
参数大于1时使用这些函数。sns.lmplot
order
大于1,则使用numpy.polyfit
估计多项式回归。hue
参数分隔类别。sns.regplot
order=
并设置ci=None
。lmplot
不同,hue
没有参数。