首页 > 解决方案 > 如何在堆积面积图中添加颜色

问题描述

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

在此处输入图像描述

我的代码在这里:

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()

实际结果: 在此处输入图像描述 非常感谢。

标签: pythonpandasmatplotlibseaborndata-science

解决方案


您需要做的就是将以下 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')

在此处输入图像描述

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


推荐阅读