快速处理变量名技巧:Python绘图模板如何实现变量一次定义全局复用
Python酒店订单取消影响因素绘图复用模板
实现逻辑
- 核心是将可变参数抽离到代码头部的统一配置区,所有业务逻辑直接引用配置变量,实现修改一次全局生效
- 封装通用绘图逻辑,避免重复编写冗余代码
- 内置变量合法性校验,避免列名写错导致的运行报错
完整可运行模板代码
# 导入依赖库 import pandas as pd import seaborn as sns import matplotlib.pyplot as plt # -------------------------- 仅修改本区块内容即可切换分析变量 -------------------------- # CSV文件存储路径 CSV_PATH = "hotel_order_data.csv" # 本次需要分析的自变量列名,更换变量仅修改此处即可 ANALYSIS_FEATURE = "lead_time" # 取消量列名,固定不变的话无需修改 CANCEL_FEATURE = "is_canceled" # 绘图可选配置 PLOT_TITLE = f"{ANALYSIS_FEATURE} 与订单取消量关联关系" FIGURE_SIZE = (12, 7) # -------------------------- 配置区块结束 -------------------------- # 1. 数据读取与校验 df = pd.read_csv(CSV_PATH) # 校验列名合法性 if ANALYSIS_FEATURE not in df.columns: raise ValueError(f"指定的分析变量 {ANALYSIS_FEATURE} 不存在于CSV文件的列中,请检查列名拼写") if CANCEL_FEATURE not in df.columns: raise ValueError(f"指定的取消量变量 {CANCEL_FEATURE} 不存在于CSV文件的列中,请检查列名拼写") # 2. 通用绘图逻辑 plt.rcParams["font.sans-serif"] = ["SimHei"] # 解决中文显示问题 plt.rcParams["axes.unicode_minus"] = False plt.figure(figsize=FIGURE_SIZE) # 自动适配变量类型选择绘图方式 if df[ANALYSIS_FEATURE].dtype == "object" or df[ANALYSIS_FEATURE].nunique() < 10: # 分类变量:绘制分组柱状图展示不同类别下的取消量占比/数量 sns.countplot(data=df, x=ANALYSIS_FEATURE, hue=CANCEL_FEATURE) else: # 连续变量:绘制箱线图展示取消/未取消订单的变量分布差异 sns.boxplot(data=df, x=CANCEL_FEATURE, y=ANALYSIS_FEATURE) plt.title(PLOT_TITLE) plt.tight_layout() plt.show() # 如需保存图片可打开下方注释 # plt.savefig(f"{ANALYSIS_FEATURE}_cancel_analysis.png", dpi=300)
使用方法
- 每次需要更换分析的酒店变量时,仅需要修改配置区的
ANALYSIS_FEATURE值为CSV对应列名,直接运行代码即可生成对应图表 - 若需要调整文件路径、图片尺寸、标题等参数,也统一在配置区修改即可
- 可根据自己的分析需求,在绘图逻辑部分新增更多图表类型,所有用到分析变量的位置直接引用
ANALYSIS_FEATURE变量即可,不需要再手动硬编码修改多处
内容的提问来源于stack exchange,提问作者PaulA
相关产品推荐
相关产品推荐

