如何在堆积面积图中添加颜色

Posted

技术标签:

【中文标题】如何在堆积面积图中添加颜色【英文标题】:How to add colors in stacked area chart 【发布时间】:2021-10-28 08:16:56 【问题描述】:

我需要在我的代码中添加区域颜色以显示类似于下面的图:

我的代码在这里:

import numpy as np
import pandas as pd
from pandas import DataFrame
import matplotlib.pyplot as plt
from matplotlib import pyplot as plt

 df = pd.DataFrame('Time': [1,2,3,4,5],
       'T=0': [0.5,0.16,0,0.25,0],
        'T=2': [0.5,0.5,1,1,1],
        'T=10': [0.75,0.8,0.85,0.9,0.8]
        )

  plt.plot( 'Time', 'T=10', data=df, marker='d', color='black', markersize=5,      linewidth=1.5, linestyle=':')

  plt.plot( 'Time', 'T=2', data=df, marker='^', color='black', markersize=4,   linewidth=1.5,linestyle='--')
  plt.plot( 'Time', 'T=0', data=df, marker='o', color='black', markersize=4, linewidth=1.5,linestyle='-')

  plt.legend()

  plt.xlabel("Time")
  plt.xticks([1,2,3,4,5])
  plt.xlim(0.9, 5.02)
  plt.ylabel("Average")
  plt.ylim(0, 1.02)
  plt.show()

实际结果: 非常感谢。

【问题讨论】:

【参考方案1】:

您需要做的就是将以下 3 行添加到您的代码中:

plt.fill_between(df['Time'], df['T=0'], alpha = 0.3, color = 'steelblue')
plt.fill_between(df['Time'], df['T=0'], df['T=2'], alpha = 0.3, color = 'yellow')
plt.fill_between(df['Time'], df['T=2'], df['T=10'], alpha = 0.3, color = 'red')

您还可以创建与颜色对应的图例。但是,对于您的图表,由于两条绘图线交叉,最好将图例分配给绘图线而不是颜色(就像您一样)。

【讨论】:

以上是关于如何在堆积面积图中添加颜色的主要内容,如果未能解决你的问题,请参考以下文章

spss如何删除堆积条形图中的某块数据

如何在堆积条形图中的每个条形上添加值[重复]

如何关闭 ggplot 堆叠条形图中的颜色图例?所有解决方案都失败了

Origin如何做堆叠面积图

echarts图表——折线图&饼图

d3:如何为堆积面积图聚焦单独的工具提示?