plt.figure(figsize=(16,9)) x=data.iloc[:,7:8] y=data.iloc[:,9:10] df1=pd.DataFrame() df1['CorX']=x df1['CorY']=y g1=sns.jointplot(x='CorX', y='CorY', data=df1, kind='reg', color='k') g1.set_axis_labels('X值','Y值',size=16)
时间: 2023-06-15 12:06:54 浏览: 51
这段代码利用了Python中的Matplotlib和Seaborn库来绘制一个散点图和回归线。首先,通过设定图形大小plt.figure(figsize=(16,9))创建一个16:9的图形。然后,使用Pandas库中的iloc方法选取数据集中第8列和第10列的数据作为x和y轴的值。接下来,创建一个DataFrame对象df1,将x和y轴的值分别存储在该对象的CorX和CorY列中。最后,使用Seaborn库中的jointplot方法创建一个散点图,并通过kind参数指定为reg以绘制回归线。此外,还可以通过color参数指定回归线的颜色。最后,通过set_axis_labels方法设置x和y轴的标签。
相关问题
data = data.iloc[:10, :]改成取后10行
要取后10行数据,可以使用 `data.iloc[-10:, :]`,其中 `-10:` 表示从倒数第10行开始,一直到最后一行。完整的代码如下:
```
select_sqli ="SELECT time,SUM(CASE WHEN type_c='两厢车' THEN xiaoliang ELSE 0 END)/SUM(xiaoliang) AS ratio,1 - SUM(CASE WHEN type_c='两厢车' THEN xiaoliang ELSE 0 END)/SUM(xiaoliang) AS ratio_complement FROM sheji.sale GROUP BY time;"
cur.execute(select_sqli)
data = pd.DataFrame(cur.fetchall(), columns=['time', 'portion','r_portion'])
data = data.set_index('time')
data = data.sort_index(ascending=False)
data = data.iloc[-10:, :] # 取后10行数据
plt.figure(figsize=(9.42,1))
data.plot(kind='bar', stacked=True, x='time')
plt.title('Sales Ratio of Different Categories')
plt.xlabel('Category')
plt.ylabel('Ratio')
plt.xticks(rotation=90)
plt.savefig('portion.png',dpi=300)
pix = QPixmap("portion.png")
new_width = self.Market.label_4.width()
new_height = int(pix.height() * new_width / pix.width())
scaled_pixmap = pix.scaled(QSize(new_width, new_height), Qt.AspectRatioMode.KeepAspectRatio,Qt.TransformationMode.SmoothTransformation)
self.Market.label_4.setPixmap(scaled_pixmap)
plt.close()
```
这样就可以取后10行数据了。
sns.pairplot(data[column],diag_kind='kde') plt.savefig('Scatter plot.jpg',dpi=256) #Pearson's correlation coefficient heatmap corr = plt.figure(figsize = (10,10),dpi=128) corr= sns.heatmap(data[column].corr(),annot=True,square=True) plt.xticks(rotation=40) import statsmodels.formula.api as smf all_columns = "+".join(data.columns[1:]) print('x is :'+all_columns) formula = 'GDP~' + all_columns print('The regression equation is :'+formula) results = smf.ols(formula, data=data).fit() results.summary() X=data.iloc[:,1:] y=data.iloc[:,0]
这段代码实现了以下功能:
首先,使用"sns.pairplot(data[column],diag_kind='kde')"绘制了一个散点图矩阵,并选择了核密度估计作为对角线上的图形。
然后使用"plt.savefig('Scatter plot.jpg',dpi=256)"将图形保存为名为"Scatter plot.jpg"的文件,分辨率为256 dpi。
接下来,创建一个名为"corr"的图形对象,大小为(10,10),分辨率为128,使用"corr = plt.figure(figsize=(10,10), dpi=128)"。
然后,使用"sns.heatmap(data[column].corr(),annot=True,square=True)"绘制基于"data[column]"数据框的列之间的皮尔逊相关系数热力图,并设置"annot=True"以在每个单元格中显示相关系数的值,"square=True"表示将单元格设置为正方形。
通过"plt.xticks(rotation=40)"可以旋转x轴刻度标签,使其更易读。
接下来,导入"statsmodels.formula.api"模块,并使用"all_columns = "+".join(data.columns[1:])"将"data"数据框中除第一列外的所有列名拼接为一个字符串,存储在名为"all_columns"的变量中。
然后,打印出"x is :"以及"all_columns"的值,显示回归方程中自变量的组成。
继续打印出"The regression equation is :"以及"formula"的值,显示回归方程的形式。
接下来,使用"smf.ols(formula, data=data).fit()"进行普通最小二乘(OLS)回归分析,将结果存储在名为"results"的变量中。
最后,通过"X=data.iloc[:,1:]"将"data"数据框中除第一列外的所有列作为自变量存储在名为"X"的变量中,通过"y=data.iloc[:,0]"将"data"数据框的第一列作为因变量存储在名为"y"的变量中。