Python:按类别分组实现数据折线图可视化
实现方案
核心思路是先将宽格式的原始数据转换为长格式,再按星期字段分组绘图即可满足需求。
前置依赖
如果未安装相关库,先执行命令安装:pip install pandas seaborn matplotlib
完整代码示例
import pandas as pd import seaborn as sns import matplotlib.pyplot as plt # 读本地CSV的话,替换下面构造DataFrame的代码为:df = pd.read_csv("你的CSV文件路径.csv") data = {'Day': ['Monday', 'Tuesday', 'Wednesday', 'Monday', 'Tuesday', 'Wednesday'], '1pm': [2,3,4,5,5,4], '2pm': [5,6,7,5,4,3], '3pm': [1,3,5,7,4,2]} df = pd.DataFrame(data) # 宽表转长表,把时间列转为单独的字段 df_long = df.melt(id_vars='Day', var_name='时间', value_name='数值') # 可选:解决matplotlib中文显示问题 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 绘图,按Day字段分组分配颜色、生成图例 # 不需要显示置信区间的话,添加参数 errorbar=None sns.lineplot(x='时间', y='数值', hue='Day', data=df_long, marker='o') plt.xlabel('时间') plt.ylabel('数值') plt.legend(title='星期') plt.show()
运行上述代码即可得到符合要求的折线图,同星期几的数据折线自动使用同一种颜色,图例可区分不同分类。
内容的提问来源于stack exchange,提问作者student214
相关产品推荐
相关产品推荐

