You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改子图折线图最后一段(t与t+1)的颜色和线条粗细?

解决方案

实现这个需求的核心思路是先绘制完整的灰色虚线折线,再单独对每个子图的最后一段(即最后两个年份之间的线段)重新绘制,设置不同的样式。具体代码如下:

import pandas as pd
import matplotlib.pyplot as plt

data = {'Year': [2018, 2019, 2020, 2021], 'Paris': [1020, 20200, 2000, 6000], 'Tokyo': [102000, 320000, 402000, 100]}
sales=pd.DataFrame.from_dict(data)
sales=sales.set_index('Year')
fig, axes = plt.subplots(1, 2, figsize=(10, 5), tight_layout=True, sharex='all')

# 绘制完整的灰色虚线折线
sales.plot(ax=axes, subplots=True, rot=90, color='grey', linewidth=1, linestyle='dashed')

# 遍历每个子图,单独绘制最后一段折线
for ax, col in zip(axes, sales.columns):
    # 获取最后两个年份的x值和对应的y值
    last_x = sales.index[-2:]
    last_y = sales[col].iloc[-2:]
    # 重新绘制最后一段,设置目标样式
    ax.plot(last_x, last_y, color='black', linewidth=2, linestyle='solid')

plt.show()

代码说明

  • 先通过sales.plot()完成基础折线图的绘制,保留原有的子图布局与灰色虚线样式。
  • 用zip(axes, sales.columns)配对每个子图和对应的数据列,确保每个子图匹配正确的城市销量数据。
  • 提取每个数据列的最后两个年份(x轴)和对应销量(y轴),通过ax.plot()单独绘制这段线段,你可以根据需求调整color、linewidth、linestyle参数来匹配目标效果。

内容的提问来源于stack exchange,提问作者j_90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 09:49:16