Python如何实现传入国家名即可生成4张图表的自定义绘图函数
自定义批量绘图函数实现思路
核心逻辑是把重复的固定流程封装到函数内部,仅把会变化的「国家名称」作为对外暴露的入参,消除重复代码。
具体实现步骤
- 先把4份固定的可视化数据集
viz1~viz4和对应的画布编号整理成可迭代的配置集合,避免重复写4次结构完全一致的绘图语句 - 定义自定义函数,仅设置1个入参用于接收国家名称
- 在函数内部遍历配置集合,依次完成画布创建、单图绘制的流程即可
- 可根据需求选择是否在函数末尾加
plt.show()统一展示图表,或者返回生成的画布对象方便后续调整、保存
参考实现代码
import matplotlib.pyplot as plt # 注:plotCT为你已实现的单图绘制函数,viz1~viz4为提前加载完成的4份可视化数据源 def plot_all_country_charts(country_name: str): # 按绘图顺序绑定画布ID和对应的数据集 chart_configs = [ (1, viz1), (2, viz2), (3, viz3), (4, viz4) ] for fig_id, viz_data in chart_configs: plt.figure(fig_id) plotCT(viz_data, country_name) # 按需开启:一次性渲染展示所有图表 # plt.show() # 调用方式:仅需传入国家名称即可生成4张对应图表 plot_all_country_charts('Czechia')
可选优化方向
- 如果不希望新的绘图覆盖之前生成的画布,可以去掉固定的画布ID,每次循环时直接创建独立画布对象,无需手动编号
- 如果后续需要给不同图表增加独立标题、自定义尺寸、自动保存等能力,只需要在
chart_configs里追加对应的配置参数即可,核心循环逻辑不需要改动 - 如果需要批量生成多个国家的全套图表,只需要在外层遍历国家名称列表,循环调用该函数即可,无需重复编写绘图代码
内容的提问来源于stack exchange,提问作者Ng.Alina
相关产品推荐
相关产品推荐

