Calplot与Calmap图表无法显示的问题排查求助
解决方法
你的问题核心是Matplotlib在脚本执行完毕后会自动关闭绘图窗口,导致你看不到生成的热力图。以下是两种可行的解决方式:
方式1:让绘图窗口保持打开
导入matplotlib.pyplot,在所有绘图代码后添加plt.show(),它会阻塞程序直到你手动关闭绘图窗口:
import numpy as np; np.random.seed(sum(map(ord, 'calplot'))) import pandas as pd import calplot import calmap import matplotlib.pyplot as plt # 新增导入 all_days = pd.date_range('1/1/2019', periods=730, freq='D') days = np.random.choice(all_days, 500) events = pd.Series(np.random.randn(len(days)), index=days) calplot.calplot(events, cmap='YlGn', colorbar=False) calmap.yearplot(events, year=2019) plt.show() # 新增该行,保持窗口打开
方式2:直接保存图像到文件
如果不需要显示窗口,只想生成图片文件,可使用plt.savefig()替代plt.show(),执行后会在脚本目录下生成指定格式的图片:
import numpy as np; np.random.seed(sum(map(ord, 'calplot'))) import pandas as pd import calplot import calmap import matplotlib.pyplot as plt # 新增导入 all_days = pd.date_range('1/1/2019', periods=730, freq='D') days = np.random.choice(all_days, 500) events = pd.Series(np.random.randn(len(days)), index=days) calplot.calplot(events, cmap='YlGn', colorbar=False) calmap.yearplot(events, year=2019) plt.savefig('calendar_heatmap.png') # 保存为PNG图片,可修改文件名和格式
补充说明
calplot和calmap都是基于Matplotlib实现的,所以它们的绘图逻辑遵循Matplotlib的规则:脚本执行完成后,所有绘图资源会被自动释放,窗口随之关闭。显式调用plt.show()或提前保存图像,就能解决窗口一闪而过的问题。
内容的提问来源于stack exchange,提问作者Brett
相关产品推荐
相关产品推荐

