京公网安备 11010802034615号
经营许可证编号:京B2-20210330
在Python中,matplotlib是一个广泛使用的绘图库。它可以用于创建各种类型的图表,包括折线图、散点图、条形图等等。当我们需要将多个数据系列绘制在同一张图中时,往往需要给每个系列指定不同的颜色。下面我将介绍如何在matplotlib中为不同系列指定颜色。
在matplotlib中,我们可以使用颜色编码来指定线条或点的颜色。常用的颜色编码有以下几种:
我们可以通过在绘图函数中传入颜色编码的参数来指定线条或点的颜色。例如,下面的代码会将三个数据系列分别绘制成蓝色、绿色和红色的线条:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [1, 4, 9, 16, 25]
y3 = [5, 4, 3, 2, 1]
plt.plot(x, y1, 'b')
plt.plot(x, y2, 'g')
plt.plot(x, y3, 'r')
plt.show()
上面的代码中,我们通过在plot()函数中传入'b'、'g'和'r'参数来指定了每个数据系列的颜色。
除了使用颜色编码外,我们还可以使用十六进制颜色码来指定颜色。使用这种方法,我们可以得到更加精细的颜色控制,因为我们可以指定任何RGB颜色的组合。
要使用十六进制颜色码,我们需要在plot()函数中传递一个color参数,并将其设置为一个字符串,该字符串以'#'开头,后面跟着六个十六进制数字(每两个代表一个RGB颜色通道)。例如,下面的代码会将三个数据系列分别绘制成蓝色、浅绿色和深红色的线条:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [1, 4, 9, 16, 25]
y3 = [5, 4, 3, 2, 1]
plt.plot(x, y1, color='#0000ff')
plt.plot(x, y2, color='#00ff80')
plt.plot(x, y3, color='#800000')
plt.show()
上面的代码中,我们分别使用了'#0000ff'、'#00ff80'和'#800000'作为颜色参数,以分别为三个数据系列指定颜色。
如果我们需要为多个数据系列选择一组相关的颜色,我们可以使用Colormap。Colormap是matplotlib中的一个类,它将连续的数值映射到一组颜色中,并且支持多个预定义的颜色方案。
使用Colormap,我们可以为每个数据系列指定一个数值,然后使用Colormap将这些数值映射到一组颜色中。例如,下面的代码将使用Colormap为三个数据系列指定颜色:
import matplotlib.pyplot as plt import numpy as np
x = [1, 2, 3, 4, 5]
y1 = [1,
2, 3, 4, 5] y2 = [1, 4, 9, 16, 25] y3 = [5, 4, 3, 2, 1]
colors = np.linspace(0, 1, len([y1, y2, y3]))
cm = plt.cm.Spectral
plt.plot(x, y1, color=cm(colors[0])) plt.plot(x, y2, color=cm(colors[1])) plt.plot(x, y3, color=cm(colors[2]))
sm = plt.cm.ScalarMappable(cmap=cm, norm=plt.Normalize(vmin=0, vmax=len([y1, y2, y3])-1)) sm._A = [] plt.colorbar(sm)
plt.show()
上面的代码中,我们首先使用`np.linspace()`函数创建了一个序列,该序列的长度等于数据系列的数量。然后,我们使用`plt.cm.Spectral`颜色方案创建了一个Colormap对象,并将该对象存储在变量`cm`中。接下来,我们分别为每个数据系列指定了一个颜色,其中颜色是通过将对应位置的序列值映射到Colormap中得到的。最后,我们使用`plt.colorbar()`函数在图例中显示了颜色条。 ## 总结 在matplotlib中为不同数据系列指定颜色可以通过多种方式实现。我们可以使用颜色编码、十六进制颜色码或Colormap来指定颜色。使用Colormap时,我们可以为每个数据系列指定一个数值,并使用Colormap将这些数值映射到一组颜色中。无论选择哪种方法,都要确保为每个数据系列指定一个明显的颜色,以便轻松区分它们。
你是否渴望进一步提升数据可视化的能力,让数据展示更加专业、高效呢?现在,有一门绝佳的课程能满足你的需求 ——Python 数据可视化 18 讲(PyEcharts、Matplotlib、Seaborn)。
学习入口:https://edu.cda.cn/goods/show/3842?targetId=6751&preview=0
这门课程完全免费,且学习有效期长期有效。由 CDA 数据分析研究院的张彦存老师精心打造,他拥有丰富的实战经验,能将复杂知识通俗易懂地传授给你。课程深入讲解 matplotlib、seaborn、pyecharts 三大主流 Python 可视化工具,带你从基础绘图到高级定制,还涵盖多元图表类型和各类展示场景。无论是数据分析新手想要入门,还是有基础的从业者希望提升技能,亦或是对数据可视化感兴趣的爱好者,都能从这门课程中收获满满。点击课程链接,开启你的数据可视化进阶之旅,让数据可视化成为你职场晋升和探索数据世界的有力武器!CDA学员免费下载查看报告全文:2026全球数智化人才指数报告【CDA数据科学研究院】.pdf
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在数据驱动运营的时代,指标是连接业务目标与实际行动的核心桥梁,是企业解读业务现状、发现问题、预判趋势的“量化标尺”。一套 ...
2026-05-08在存量竞争日趋激烈的商业时代,“以客户为中心”早已从口号落地为企业运营的核心逻辑。而客户画像作为打通“了解客户”与“服务 ...
2026-05-08 很多数据分析师每天与Excel打交道,但当被问到“什么是表格结构数据”“它和表结构数据有什么区别”“表格结构数据有哪些核 ...
2026-05-08在数据分析、计量研究等场景中,回归分析是探究变量间量化关系的核心方法,无论是简单的一元线性回归,还是复杂的多元线性回归、 ...
2026-05-07在数据分析、计量研究等场景中,回归分析是探究变量间量化关系的核心方法,无论是简单的一元线性回归,还是复杂的多元线性回归、 ...
2026-05-07 很多数据分析师画过趋势图、做过业绩预测,但当被问到“这个月销售额增长20%,到底是长期趋势自然增长,还是促销活动的短期 ...
2026-05-07在数字化时代,商业竞争的核心已从“经验驱动”转向“数据驱动”,越来越多的企业意识到,商业分析不是简单的数据统计与报表呈现 ...
2026-05-06在Excel数据透视表的实操中,“引用”是连接透视表与公式、辅助数据的核心操作,而相对引用作为最基础、最常用的引用方式,其设 ...
2026-05-06 很多数据分析师做过按月份的销售额趋势图,画过按天的流量折线图,但当被问到“时间序列和普通数据有什么本质区别”“季节性 ...
2026-05-06在Excel数据分析中,数据透视表是汇总、整理海量数据的高效工具,而公式则是实现数据二次计算、逻辑判断的核心功能。实际操作中 ...
2026-04-30Excel透视图是数据分析中不可或缺的工具,它能将透视表中的数据快速可视化,帮助我们直观捕捉数据规律、呈现分析结果。但在实际 ...
2026-04-30 很多数据分析师能熟练地计算指标、搭建标签体系,但当被问到“画像到底在解决什么问题”“画像和标签是什么关系”“画像如何 ...
2026-04-30在中介效应分析中,人口统计学变量(如年龄、性别、学历、收入、职业等)是常见的控制变量或调节变量,其处理方式直接影响分析结 ...
2026-04-29在SQL数据库实操中,日期数据的存储与显示是高频需求,而“数字日期”(如20240520、20241231、45321)是很多开发者、数据分析师 ...
2026-04-29 很多分析师在设计标签时思路清晰,但真到落地环节却面临“数据在手,不知如何转化为可用标签”的困境:或因加工方式选择不当 ...
2026-04-29在手游行业竞争日趋白热化的当下,“流量为王”早已升级为“留存为王”,而付费用户留存率更是衡量一款手游盈利能力、运营质量的 ...
2026-04-28在日常MySQL数据库运维与开发中,经常会遇到“同一台服务器上,两个不同数据库(以下简称“源库”“目标库”)的表数据需要保持 ...
2026-04-28 很多分析师每天和数据打交道,但当被问到“标签是什么”“标签和指标有什么区别”“标签体系如何设计”时,却常常答不上来。 ...
2026-04-28箱线图(Box Plot)作为一种经典的数据可视化工具,广泛应用于统计学、数据分析、科研实证等领域,核心价值在于直观呈现数据的集 ...
2026-04-27实证分析是社会科学、自然科学、经济管理等领域开展研究的核心范式,其核心逻辑是通过对多维度数据的收集、分析与解读,揭示变量 ...
2026-04-27