面积图的python matplotlib markercale

时间:2017-07-11 07:20:42

标签: python matplotlib legend

我想要做的是使用Python中的Matplotlib在电网中生成和需求的图表。这是我的代码:

fig,ax = plt.subplots(figsize=(14,8))
generation.plot(kind="area", ax=ax, linewidth=1, alpha=0.9)
load.plot(kind="area", ax=ax, linewidth=1, alpha=0.9)
labels = ['Erzeugung', 'Last']
ax.legend(labels, ncol=4, loc="best", markerscale=10)
ax.set_ylabel("GW")
ax.set_xlabel("")
plt.tight_layout()

结果如下:

enter image description here

我的问题是关于markerscale:为什么它不适用于这种情节?问题是图例中标记的可见性差,使用较粗的线条甚至是盒子会更好。并且这不会增加线的线宽。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以在创建后手动设置线条大小,如下所示:

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

fig, ax = plt.subplots(figsize=(14,8))

generation = pd.DataFrame(np.random.randint(10, 14, 10))
load = pd.DataFrame(np.random.randint(2, 5, 10))

generation.plot(kind="area", ax=ax, linewidth=1, alpha=0.9)
load.plot(kind="area", ax=ax, linewidth=1, alpha=0.9)

labels = ['Erzeugung', 'Last']

legend = ax.legend(labels, ncol=4, loc="best")

for handle in legend.legendHandles:
    handle.set_linewidth(3.0)

ax.set_ylabel("GW")
ax.set_xlabel("")
plt.tight_layout()

plt.show()

给你类似的东西:

matplotlib with bigger legend line