使用Pandas与Matplotlib绘制折线图出现填充问题求助
解决Matplotlib折线图显示为填充样式的问题
问题描述
使用pandas和matplotlib绘制数据集时,应用Solarize_Light2样式后,折线图显示为填充区域样式,需要改为普通折线样式。
解决方案
方法1:显式指定线条样式
在plt.plot()中添加linestyle='-'参数,覆盖样式的默认设置:
%matplotlib inline from matplotlib import style import pandas as pd from matplotlib import pyplot as plt covid = pd.read_csv('covid_19_india.csv') plt.style.use('Solarize_Light2') # 指定实线样式 plt.plot(covid.Date, covid.Deaths, linestyle='-') plt.show()
方法2:修改样式默认参数
加载样式后,全局修改线条样式的默认配置:
%matplotlib inline from matplotlib import style import pandas as pd from matplotlib import pyplot as plt covid = pd.read_csv('covid_19_india.csv') plt.style.use('Solarize_Light2') # 覆盖样式中的线条设置 plt.rcParams['lines.linestyle'] = '-' plt.plot(covid.Date, covid.Deaths) plt.show()
方法3:更换其他内置样式
如果不需要Solarize_Light2的配色,可直接使用默认或其他内置样式(如ggplot、seaborn),这些样式默认采用折线展示:
%matplotlib inline from matplotlib import style import pandas as pd from matplotlib import pyplot as plt covid = pd.read_csv('covid_19_india.csv') # 使用ggplot样式 plt.style.use('ggplot') plt.plot(covid.Date, covid.Deaths) plt.show()
原因说明
Solarize_Light2是matplotlib的内置样式之一,其默认配置中lines.linestyle被设置为'None',同时开启了填充效果,导致图表显示为填充区域而非折线。通过显式指定线条样式或修改配置,可以恢复普通折线的展示效果。
内容的提问来源于stack exchange,提问作者hassan abbas
相关产品推荐
相关产品推荐

