仅导入Pandas,如何在for循环中生成多个独立图表?
解决Pandas循环绘图仅生成单图的问题
问题原因
Pandas的plot()方法默认会复用当前已有的matplotlib绘图轴(Axes),当循环中多次调用绘图时,后续的图会直接叠加到同一个画布上,最终只显示一个图表。
解决方案
在每次调用plot()时添加newfig=True参数,强制创建新的独立画布(Figure),无需显式导入matplotlib即可生成多个独立图表。
修改后的示例代码
针对你提供的第二个示例,修改后代码如下:
import pandas as pd data = {'C1': ['A', 'A', 'B', 'B'], 'C2': [i for i in range(4)], 'C3': [1,2,1,2]} df = pd.DataFrame(data) for n in [1,2]: df[df.C3 == n].groupby('C1').C2.sum().plot(kind='bar', newfig=True)
该参数会让每次绘图都生成全新的画布,彻底避免图表叠加的问题,且全程无需引入matplotlib库。
内容的提问来源于stack exchange,提问作者wannik
相关产品推荐
相关产品推荐

