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 列。
如果不单独为每一列手动声明它,这是否可能?
谢谢!
解决方案
您可以为此任务创建自定义循环器:
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()
样本输出:
推荐阅读
- html - 导航后有一个小间隙
- c++ - 从 3 个向量中删除重复项
- pyspark - 从另一个数据帧中的一个数据帧中找到所有出现的值的最佳方法是什么?
- java - 构建应用程序失败说学习如何修复依赖项解析错误
- linux - 想通过 ansible 运行一个简单的 root 命令
- frame - H2o flow automl 临时样品架
- python-3.x - 如何以编程方式将另一个项目插入正文?
- javascript - 找不到一个或多个图标 vuejs 应用程序警告
- python - Multiprocessing.pool - 在可并行化函数中传递另一个变量
- npm - npm 错误!您可能没有权限以 Mac 上的当前用户身份访问此文件