我想在绘制两个列相同但代表不同实验的pandas数据帧时使用相同的颜色循环。例如,
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
f1 = lambda x: (x/1)**2
f2 = lambda x: (x/2)**2
f3 = lambda x: (x/3)**2
x = np.linspace(0, 1, 100)
exp1 = pd.DataFrame({'f1': f1(x),
'f2': f2(x),
'f3': f3(x)})
exp2 = exp1 * 1.5
fig, ax = plt.subplots()
exp1.plot(ax=ax)
exp2.plot(ax=ax, style='--', legend=False)
给出一个看起来像这样的数字:
第二个绘图命令继续在第一个之后颜色循环停止的位置。在pandas DataFrames的连续绘图命令之间“重置”颜色循环的最佳方法是什么?
答案 0 :(得分:1)
除了上面提到的答案之外,还值得一提的是,你总是可以选择自己的自定义颜色,然后在两个地块中使用该设置。
from itertools import cycle, islice
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
f1 = lambda x: (x / 1) ** 2
f2 = lambda x: (x / 2) ** 2
f3 = lambda x: (x / 3) ** 2
x = np.linspace(0, 1, 100)
exp1 = pd.DataFrame({'f1': f1(x),
'f2': f2(x),
'f3': f3(x)})
exp2 = exp1 * 1.5
custom_colours = list(islice(cycle(["b", "g", "r", "c", "m", 'k']), None, len(exp1)))
fig, ax = plt.subplots()
exp1.plot(ax=ax, color=custom_colours)
exp2.plot(ax=ax, style='--', legend=False, color=custom_colours)