Python-基于另一列的动态折线图标记颜色

我正尝试在 Python 中创建一个简单的折线图,对于每个客户,我都希望显示一条基于值(y轴)和日期(x-轴)。标记颜色应基于颜色字段。

请在下面查看示例数据和预期输出(对不起,我的涂鸦)

Sample Data Here

Expected Output

xinsuandeluoba 回答:Python-基于另一列的动态折线图标记颜色

一种简单的方法是首先使用plot函数绘制线条(例如黑色),然后使用scatter绘制彩色标记。这里我展示一个例子:

我生成的数据与您的数据类似,如下所示(我想您将数据存储在pandas数据框中):

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

columns = ['CustID','Date','Value','Color']
data = []

np.random.seed(42)
for cus_id in np.arange(1,5):
    for date in ['jan','feb','mar','apr']:
        data.append([cus_id,date,np.random.randint(20,35),np.random.choice(['red','blue','green'])])

df = pd.DataFrame(data=data,columns=columns)

此时,df包含this table

最后,绘制您的折线图:

fig,ax = plt.subplots(1)
for _,df_cus in df.groupby('CustID'):
    ax.plot(df_cus.Date,df_cus.Value,color='black',zorder=0)
    ax.scatter(df_cus.Date,color=df_cus.Color,zorder=1)

Here's the output

我使用zorder来确保散点图始终位于黑线的顶部。

本文链接:https://www.f2er.com/3095373.html

大家都在问