返回功能详情

数据可视化分析工具 - 核心示例代码

以下是批量数据导入与折线图生成的核心代码,支持 CSV 数据读取、缺失值处理和自定义图表样式:

复制成功!
import pandas as pd
 import matplotlib.pyplot as plt
 import numpy as np  # 补充缺失的 numpy 导入
 # 1. 数据导入与清洗
 def load_and_clean_data(file_path):
     # 读取 CSV 数据
     df = pd.read_csv(file_path)
     # 填充缺失值(数值型用均值,字符型用众数)
     df = df.fillna({
         col: df[col].mean() if df[col].dtype in [np.float64, np.int64] else df[col].mode()[0]
         for col in df.columns
     })
     # 去除重复数据
     df = df.drop_duplicates()
     return df
 # 2. 生成折线图
 def generate_line_chart(df, x_col, y_cols, title, save_path):
     # 设置中文字体
     plt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS']
     plt.rcParams['axes.unicode_minus'] = False
     
     # 创建图表
     plt.figure(figsize=(12, 6))
     colors = ['#22c55e', '#38bdf8', '#f97316', '#c084fc', '#f87171']
     
     # 绘制多条折线
     for i, y_col in enumerate(y_cols):
         plt.plot(
             df[x_col], df[y_col], 
             color=colors[i % len(colors)], 
             linewidth=2, 
             label=y_col
         )
     
     # 自定义图表样式
     plt.title(title, fontsize=16, color='#fff', pad=20)
     plt.xlabel(x_col, fontsize=12, color='#ccc')
     plt.ylabel('数值', fontsize=12, color='#ccc')
     plt.legend(fontsize=10, labelcolor='#ccc')
     plt.grid(True, alpha=0.1, color='#444')
     
     # 设置背景色
     ax = plt.gca()
     ax.set_facecolor('#0a0a0a')
     plt.gcf().patch.set_facecolor('#0a0a0a')
     
     # 保存图片(透明背景)
     plt.savefig(
         save_path, 
         dpi=300, 
         bbox_inches='tight', 
         facecolor='#0a0a0a', 
         edgecolor='none'
     )
     plt.close()
 # 3. 主函数调用
 if __name__ == '__main__':
     # 数据路径
     data_path = 'data/sales_data.csv'
     save_path = 'output/sales_trend.png'
     
     # 执行流程
     df = load_and_clean_data(data_path)
     generate_line_chart(
         df, 
         x_col='日期', 
         y_cols=['销售额', '订单量', '客单价'], 
         title='月度销售趋势分析', 
         save_path=save_path
     )
     print(f"图表已保存至:{save_path}")