我有一个情节,其中每行是由变量a的值的彩色和由变量b的值具有线型:Matplotlib:颜色和由两个不同的变量线型带独立传说
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# some data
x = np.array([[1, 2, 0.1, 0.5], [2, 3, 0.1, 0.5],
[1, 4, 0.4, 0.8], [2, 1, 0.4, 0.8],
[1, 1, 0.1, 0.8], [2, 3, 0.1, 0.8],
[1, 3, 0.4, 0.5], [2, 3, 0.4, 0.5]])
df = pd.DataFrame(x)
df.columns = ["x", "y", "a", "b"]
df.head()
# define color scheme and line style
colors = ["C1", "C2", "C3"]
linestyles = ['-', "--", ":"]
for a_idx, a in enumerate(np.unique(df["a"])):
for b_idx, b in enumerate(np.unique(df["b"])):
df2 = df[df["a"] == a]
df2 = df2[df2["b"] == b]
plt.plot(df2["x"], df2["y"], c = colors[a_idx], ls = linestyles[b_idx])
plt.legend(['a = 0.1, b = 0.5', 'a = 0.1, b = 0.8',
'a = 0.4, b = 0.5', 'a = 0.4, b = 0.8'])
plt.show()
现在我想分别为颜色和线条样式,所以一个框的标题为a和两个彩色线条的值为0.1,0.4,另一个框的标题为b,两条线条的线条的值分别为0.5和0.8。
也可以只有一个盒子,但用一些空格分开颜色和线条样式。
谢谢:)是否有可能改变在B传说黑色线条的颜色? – needRhelp
@needRhelp看我的编辑。 – FlashTek