使用一种颜色为多个列打印数据框

2024-05-19 13:08:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个如下所示的数据帧:

                                 A  ...            B
datetime                            ...             
2020-01-01 00:00:00         10.622  ...           30
2020-01-01 01:00:00         16.397  ...           30
2020-01-01 02:00:00         24.190  ...           30
2020-01-01 03:00:00         33.579  ...           30
2020-01-01 04:00:00         44.643  ...           30
                            ...     ...           ...
2020-01-07 20:00:00         18.090  ...           30
2020-01-07 21:00:00         18.027  ...           30

使用df.plot时,所有列都使用默认颜色和实线打印。我想以相同的颜色绘制A到x列,但使用不同的标记,并以另一种颜色绘制x+1到B列,使用相同的标记

在不分别为每一列手动声明的情况下,这是可能的吗

谢谢


Tags: 数据标记声明dfdatetimeplot颜色绘制
1条回答
网友
1楼 · 发布于 2024-05-19 13:08:19

您可以为此任务创建custom cycler

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

markernr = 3
colornr = 2
#test data generation
np.random.seed(123)
df = pd.DataFrame(np.random.random((10, 6)), columns=["A1", "A2", "A3", "B1", "B2", "B3"])

colors = ["tab:red", "tab:blue", "tab:orange", "brown", "lightblue", "yellow"]
markers = ["x", "o", "D", "+", "H"]

my_cycler = (cycler(color=colors[:colornr]) *
             cycler(marker=markers[:markernr]))

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 6))

df.plot(ax=ax1, title="Standard cycler")

ax2.set_prop_cycle(my_cycler)
df.plot(ax=ax2, title="Customized cycler")

plt.show()

样本输出:

enter image description here

相关问题 更多 >