Python 为什么会出现关键错误';0';运行此代码
尝试运行此代码时出现密钥错误0:Python 为什么会出现关键错误';0';运行此代码,python,Python,尝试运行此代码时出现密钥错误0: #绘制绘图 plt.图(figsize=(13,10),dpi=80) sns.boxplot(x='demand',y='Price',data=df,notch=False) #在箱线图内添加N个Obs(可选) def添加obs(df、组列、y): medians_dict={grp[0]:grp[1][y]。df.groupby(group_col)中grp的中值() xticklabels=[x.get_text()表示plt.gca()中的x。get_
#绘制绘图
plt.图(figsize=(13,10),dpi=80)
sns.boxplot(x='demand',y='Price',data=df,notch=False)
#在箱线图内添加N个Obs(可选)
def添加obs(df、组列、y):
medians_dict={grp[0]:grp[1][y]。df.groupby(group_col)中grp的中值()
xticklabels=[x.get_text()表示plt.gca()中的x。get_xticklabels()]
n\u obs=df.groupby(group\u col)[y].size().values
对于(x,xticklabel),n_ob in zip(枚举(xticklabel),n_obs):
plt.text(x,中位数dict[xticklabel]*1.01,“#obs:+str(n#ob),水平对齐='center',字体dict={'size':14},颜色='white')
添加obs(df,组集合=需求,y=价格)
#装饰
打印标题(“方框图”,字体大小=22)
plt.ylim(10,40)
plt.show()
我尝试使用seaborn提供的默认提示数据运行您的代码:
from matplotlib import pyplot as plt
import seaborn as sns
df = sns.load_dataset("tips")
# Draw Plot
plt.figure(figsize=(13,10), dpi= 80)
sns.boxplot(x="day", y="total_bill", data=df, notch=False)
# Add N Obs inside boxplot (optional)
def add_n_obs(df,group_col,y):
medians_dict = {grp[0]:grp[1][y].median() for grp in df.groupby(group_col)}
xticklabels = [x.get_text() for x in plt.gca().get_xticklabels()]
n_obs = df.groupby(group_col)[y].size().values
for (x, xticklabel), n_ob in zip(enumerate(xticklabels), n_obs):
plt.text(x, medians_dict[xticklabel]*1.01, "#obs : "+str(n_ob), horizontalalignment='center', fontdict={'size':14}, color='white')
add_n_obs(df,group_col='day',y='total_bill')
# Decoration
plt.title('Box Plot', fontsize=22)
plt.ylim(10, 40)
plt.show()
而且似乎效果不错。您确定您的数据帧变量df有“需求”和“价格”键吗?您好,谢谢您的回答,是的,我确定。如果我把‘价格’放在x上,把‘需求’放在y上,我会得到关键错误“44.0”,这是价格的最低值,0是需求的最低值。这就像它在第一个值上返回错误一样。