Matplotlib样式表在VSCode与Jupyter中颜色显示不一致求助
VSCode与Jupyter Notebook中Matplotlib颜色渲染不一致的解决方案
我正在创建Matplotlib样式表以统一绘图风格,但发现VSCode和Jupyter Notebook渲染图表时,指定的黄色(#FFB700)/橙色显示存在差异。我需要同时使用这两个环境,希望颜色保持一致,请问操作是否有误?我对颜色渲染了解不多,仅希望所有图表样式统一。指定颜色为:黄色#FFB700、蓝色#003B95。
VSCode中符合预期的渲染效果:
Jupyter Notebook中颜色不符的渲染效果:
复现代码
- 样式表
mystylesheet.mplstyle内容:
axes.prop_cycle: cycler('color', ['003B95', 'FFB700'])
- Python代码:
import pandas import numpy import matplotlib.pyplot as plt plt.style.use('mystylesheet.mplstyle') line_dates = pandas.date_range('2023-01-01', periods=12) line_data1 = numpy.random.randint(1, 100, 12) line_data2 = numpy.random.randint(1, 100, 12) plt.plot(line_dates, line_data1, label='Data 1') plt.plot(line_dates, line_data2, label='Data 2') plt.savefig("fake_data_plot.png") # 使用plt.show()也会出现同样的颜色差异
问题原因与解决方法
核心问题是颜色代码缺少#前缀,导致Matplotlib在不同环境下解析行为不一致:
- VSCode环境中,Matplotlib自动补全了
#前缀,正确识别了十六进制颜色; - Jupyter Notebook环境中未自动补全,颜色被解析为其他格式(如RGB归一化值),因此出现色差。
只需修改样式表,给每个十六进制颜色加上#前缀即可解决:
axes.prop_cycle: cycler('color', ['#003B95', '#FFB700'])
修改后重新加载样式表,两个环境下的颜色渲染就会完全一致。另外要确保Python代码中正确加载了自定义样式表(若样式表不在当前工作目录,需指定完整路径)。
内容的提问来源于stack exchange,提问作者Emmy
相关产品推荐
相关产品推荐

