我正在尝试在matplotlib中绘制折线图,使用以下数据,x和y点属于同一id是一条线,因此在下面的数据框中有3条线。
可以使用以下代码简单绘制:
id x y
0 1 0.50 0.0
1 1 1.00 0.3
2 1 1.50 0.5
4 1 2.00 0.7
5 2 0.20 0.0
6 2 1.00 0.8
7 2 1.50 1.0
8 2 2.00 1.2
9 2 3.50 2.0
10 3 0.10 0.0
11 3 1.10 0.5
12 3 3.55 2.2
可以使用以下代码简单绘制:
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib notebook
fig, ax = plt.subplots(figsize=(12,8))
cmap = plt.cm.get_cmap("viridis")
groups = df.groupby("id")
ngroups = len(groups)
for i1, (key, grp) in enumerate(groups):
grp.plot(linestyle="solid", x = "x", y = "y", ax = ax, label = key)
plt.show()
但是,我有另一个数据框df2,其中给出了每个id的权重,并希望找到一种方法来控制每条线的粗细,根据其权重,权重越大,线条越粗。 我该怎么做?此外,线条宽度和权重之间的关系是什么?
id weight
0 1 5
1 2 15
2 3 2
如果有任何不清楚的地方,请告诉我。
linewidth=str(weight/2)
。这样,您的线宽将从1变化到7.5。 - Scott Mermelstein