有趣生活

当前位置:首页>科技>python画折线图不要线如何在复杂混乱的折线图中突出一条线

python画折线图不要线如何在复杂混乱的折线图中突出一条线

发布时间:2026-07-21阅读(1)

导读在上文Python数据可视化实例:关于图表“贵族”折线的增强优化方法中,我们总结了很多关于折线图的方法和注意事项,有兴趣的可以回头翻看一下。越是想展示更多,....

在上文Python数据可视化实例:关于图表“贵族”折线的增强优化方法中,我们总结了很多关于折线图的方法和注意事项,有兴趣的可以回头翻看一下。

越是想展示更多,越是容易混乱

在前面的注意事项里,我们提到有一项叫做“意大利面条图”,来形容多条折线在一组图里的混乱情况。

N多条折线错综复杂、交叉在一起,根本分不清哪个是重点、哪里有异常。

在实际业务中,很多时候都会遇到这种图表,比如不同城市在同一个时间内的业务变化情况

LOSS IS MOER:少即是多,突出重点

其实业务讲究解决问题,图表的数据自然也应该直接瞄准重点。而不是把所有的数据都堆砌到一张图表里。越是简单直接,越是能加速解读数据,也能提高商业效率。

下面我们来做一组实验:

这是一张图满是汽车的图片,你第一眼看到它,会先注意或者关注到哪辆车?

OK,再来看看这张图片,你的注意力会集中到哪里?

结论不言而喻,第二张图留给我们的印象更深刻,更容易吸引我们的注意力。

甚至我们会产生兴趣,想知道这辆车到底跑的多快,什么品牌等等。

这也正是因为我们眼睛和注意力的承载力有限,比如看股市图表,一般人是受不了这些密密麻麻的。

所以我们更喜欢简单明了的东西,它理解起来更快,当然也容易被忽悠和利用。

同样的道理,就是文章→图表→长视频→短视频→大标题,越是简单直接,越是惹人关注!

看看图表中如何解决“意大利面条图”

OK,下面我们来看看如何利用这个原则来解决杂乱图表的问题

数据为模拟数据,主要是为了演示效果,没有具体商业意义。

准备工作

import pandas as pd import numpy as npimport matplotlibimport matplotlib.pyplot as pltimport seaborn as sns%matplotlib inline# 引入pandas、matplotlib、seaborn包import sys# 引入系统模块库import os# 引入文件/目录方法库print(sys.version)print(------------)print(pd.__version__)

## 初始字体设置,设置好可避免很多麻烦plt.rcParams[font.sans-serif]=[Source Han Sans CN] # 显示中文不乱码,思源黑体 plt.rcParams[font.size] = 22 # 设置图表全局字体大小,后期某个元素的字体大小可以自行调整plt.rcParams[axes.unicode_minus] = False # 显示负数不乱码## 初始化图表大小plt.rcParams[figure.figsize] = (20.0, 8.0) # 设置figure_size尺寸## 初始化图表分辨率质量plt.rcParams[savefig.dpi] = 300 # 设置图表保存时的像素分辨率plt.rcParams[figure.dpi] = 300 # 设置图表绘制时的像素分辨率## 图表的颜色自定义colors = [#dc2624, #2b4750, #45a0a2, #e87a59, #7dcaa9, #649E7D, #dc8018, #C89F91, #6c6d6c, #4f6268, #c7cccf]plt.rcParams[axes.prop_cycle] = plt.cycler( color=colors)path = D:\\系列文章\\# 自定义文件路径,可以自行设定os.chdir(path)# 设置为该路径为工作路径,一般存放数据源文件

Sales_data = pd.read_excel(虚拟演示案例数据.xlsx, sheet_name=销售数据表)

数据处理和转化

Sales_data = pd.read_excel(虚拟演示案例数据.xlsx, sheet_name=销售数据表)

Sales_data_sum = Sales_data_sum[2015-05-01:2015-05-30]Sales_data_sum

City_name = Sales_data_sum[门店城市].unique().tolist()One_City_data = Sales_data_sum.loc[Sales_data_sum[门店城市]==北京市]One_City_data

画出折线图,并突出显示北京的数据

# 画出其他城市的折线for i in City_name[1:6]: # 按照城市筛选数据 City_data = Sales_data_sum.loc[Sales_data_sum[门店城市]==i] # 画出每个城市的折线 plt.plot(City_data.index, City_data[购买数量], color=grey) # 设置为灰色 # 画出每个城市的数据标签,如城市名称 plt.text(City_data.index[-1], City_data[购买数量][-1], i,color=grey) # 设置为灰色 # 画出重点突出的折线One_City_data = Sales_data_sum.loc[Sales_data_sum[门店城市]==City_name[0]] # 本案例具体是指北京plt.plot(One_City_data.index, One_City_data[购买数量], color=orange, linewidth=4, alpha=0.7)plt.text(One_City_data.index[0], One_City_data[购买数量][0], City_name[0], color=orange)# 设置图表的其他元素plt.title("北京5月份销量变化情况", loc=left, fontsize=30, fontweight=0, color=orange) # 设置图表标题plt.xlabel("时间") # 设置X轴坐标名称plt.ylabel("购买数量") # 设置Y轴坐标名称sns.despine() # 默认无参数状态,就是删除上方和右方的边框,matplotlib貌似做不到plt.show()

写在最后

以上代码中,附加了注释内容。如果不清楚Python语法,建议自学一下。

另外其实这个功能在Excel中只需动动手指修改线条颜色,比起写代码省时间。

喜欢本篇内容,请动动小手转发和关注一下,我是数据分析师,老海。

TAGS标签:  python  画折  线图  不要  线如  python画折线图

Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图