波士顿矩阵图的分析思维就是把研究对象按照两个维度分成了四类。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
data=pd.read_excel('波士顿矩阵图.xlsx')
data
def boston(df,title,x,y):
'''
df:数据集
title:图形标题
x:指的X轴选取的列头
y:指的是Y轴选取的列头
'''
sns.set_style('white')
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.figure(figsize=(10, 6))
sns.scatterplot(x=x, y=y, data=df, hue=y, size=y, palette='rainbow')
plt.xlabel(x)
plt.ylabel(y)
plt.title(title)
# 加水平线
plt.axhline(y=df[y].mean()) #取均值
plt.axvline(x=df[x].mean())
for i in df.index:
plt.text(df.loc[i,x] - 0.001,df.loc[i,y]-0.0015,df['行业'][i],rotation=0)
'''
plt.text(x,y,string,fontsize=15,verticalalignment="top",horizontalalignment="right")
x,y:表示坐标值上的值;
string:表示说明文字;
fontsize:表示字体大小;
verticalalignment:垂直对齐方式 ,参数:[ ‘center’ | ‘top’ | ‘bottom’ | ‘baseline’ ];
horizontalalignment:水平对齐方式 ,参数:[ ‘center’ | ‘right’ | ‘left’ ]
'''
boston(data,'波士顿矩阵(四象限图)','春节用电下降比例','工作日用电下降比例')