Python MatPlotLib文本位置异常行为
我有一个显示散点图的功能:Python MatPlotLib文本位置异常行为,python,pandas,matplotlib,jupyter-notebook,Python,Pandas,Matplotlib,Jupyter Notebook,我有一个显示散点图的功能: def批评者和用户评分与总销售额(\u df,平台): 评论家得分不得分=df['批评家得分].notna()&(df['platform']==platform) 评论家的总销售额=df[评论家的总销售额][总销售额] 评论家评分=df[评论家评分][“评论家评分”] 用户分数不等于df['user\u score'].notna()&(df['platform']==platform) 用户得分的总销售额=df[用户得分非总销售额][“总销售额”] 用户分数=df
def批评者和用户评分与总销售额(\u df,平台):
评论家得分不得分=df['批评家得分].notna()&(df['platform']==platform)
评论家的总销售额=df[评论家的总销售额][总销售额]
评论家评分=df[评论家评分][“评论家评分”]
用户分数不等于df['user\u score'].notna()&(df['platform']==platform)
用户得分的总销售额=df[用户得分非总销售额][“总销售额”]
用户分数=df[用户分数非用户分数][“用户分数”]
info_bbox_props=dict(boxstyle='round',facecolor='white',alpha=0.2)
图=plt.图(图尺寸=(16,7))
ax1=图添加子批次(121)
ax2=图add_子批次(122)
ax1.grid(真)
ax1.set_xlim(0,25)
ax1.set_title(“{}评论家评分和总销售额相关性”。格式(平台))
ax1.set_xlabel(“总销售额”)
ax1.set_ylabel(‘批评家得分’)
ax1.分散(总销售(针对评论家评分,评论家评分,s=10)
ax1.text(0.345,0.88,'corerelation:{.2f}'。格式(评论家评分的总销售额)corr(评论家评分)),
transform=ax.transAxes,垂直对齐='top',水平对齐='right',bbox=info\u bbox\u props)
ax2.grid(真)
ax2.set_xlim(0,25)
ax2.set_title(“{}用户分数和总销售额相关性”。格式(平台))
ax2.set_xlabel(“总销售额”)
ax2.set_ylabel(“用户分数”)
ax2.分散(用户分数的总销售额,用户分数,s=10)
ax2.text(0.892,0.88,'corerelation:{.2f}'。格式(用户得分的总销售额),
transform=ax.transAxes,垂直对齐='top',水平对齐='right',bbox=info\u bbox\u props)
plt.show()
我在代码中进一步调用此函数:
critics_and_users_score_corr_with_total_sales(df, top_platforms.index[0])
结果如下:
正如我们所看到的,文本字段被放置在绘图之外
但是,如果我通过Shift+Enter
第二次和后续时间-text运行此单元格,则字段将放置在其他位置:
如果重新启动内核并运行所有单元格,文本字段将再次放置在绘图之外
这是什么魔法?问题在于以下几行:
ax1.text(0.345, 0.88, 'Corelation: {:.2f}'.format(total_sales_for_critic_score.corr(critic_score)),
transform=ax.transAxes, verticalalignment='top', horizontalalignment='right', bbox=info_bbox_props)
我的ax有一个ax1
名称,但我发送给参数transform=ax.transAxes
。显然,ax
是在其他地方声明的
我的错。神奇可能发生在你笔记本的30个单元格中,你在这里没有显示。看见