如何消除Matplotlib绘制股票曲线时代码运行产生的多余文本输出
问题原因
你看到的多余文本是plt.xticks()方法的返回值,该方法会返回包含刻度位置、刻度标签对象的元组,在Jupyter Notebook、IPython这类交互式运行环境中,会默认打印单元格最后一行代码的返回结果,因此出现了这些不需要的内容。
解决方法
有两种常用的方案可以避免输出:
- 方案1:在最后一行
plt.xticks()代码末尾添加英文分号;,即可直接抑制返回值输出,修改后完整代码如下:
study_symbol='TQQQ' fig, ax1 = plt.subplots(figsize=(10, 6)) color = '#0072B2' ax1.set_xlabel('Days') ax1.set_ylabel('SPY', color=color) ax1.plot(df2['Days'], df2['SPY'], color=color, ls='-', label='SPY') ax1.scatter(df['Days'], df['SPY'], color=color, marker='o') ax1.tick_params(axis='y', labelcolor=color) ax1.legend(loc=(0.01, .94), frameon=False) ax2 = ax1.twinx() # 实例化共享x轴的第二个坐标轴 color = 'r' ax2.set_ylabel(study_symbol, color=color) # x轴标签已经由ax1设置 ax2.plot(df2['Days'], df2[study_symbol], color=color, ls='--', label=study_symbol) ax2.scatter(df['Days'], df[study_symbol], color=color, marker='x') ax2.tick_params(axis='y', labelcolor=color) ax2.legend(loc=(0.01, .89), frameon=False) fig.tight_layout() # 防止右侧y轴标签被截断 plt.title(r'$\bfStock\ of\ SPY$' + '\ncorrelates with\n' + r'$\bfStock\ of $'+r'$\bf\ '+study_symbol+'$') plt.xticks(ticks=df['Days'].tolist(), labels=df['Days'].tolist());
- 方案2:将
plt.xticks()的返回值赋值给无用变量(通常用_作为临时占位变量),仅需修改最后一行代码即可:
_ = plt.xticks(ticks=df['Days'].tolist(), labels=df['Days'].tolist())
内容的提问来源于stack exchange,提问作者roudan
相关产品推荐
相关产品推荐

