import matplotlib.pyplot as plt
fig = plt.figure(0)
x=[0,1,2,3,4,5,6,7,8,9]
y=[1.0,1.5,2.3,2.2,1.1,1.4,2.0,2.8,1.9,2.0]
z=['A','A','A','B','B','A','B','B','B','B']
plt.plot(x,y)
if 'A' in z and 'B' in z:
xs = [a for a,b in zip(x, z) if b == 'A']
ys = [a for a,b in zip(y, z) if b == 'A']
plt.scatter(xs, ys, marker='s')
xt = [a for a,b in zip(x, z) if b == 'B']
yt = [a for a,b in zip(y, z) if b == 'B']
plt.scatter(xt, yt, marker='^')
else:
plt.scatter(x, y, marker='.', s=0)
plt.show()
または
import matplotlib.pyplot as plt
fig = plt.figure(0)
x=[0,1,2,3,4,5,6,7,8,9]
y=[1.0,1.5,2.3,2.2,1.1,1.4,2.0,2.8,1.9,2.0]
z=['A','A','A','B','B','A','B','B','B','B']
plt.plot(x,y)
if 'A' in z and 'B' in z:
plt.scatter(x, y, marker='s', s=list(map(lambda a: 20 if a == 'A' else 0, z)))
plt.scatter(x, y, marker='^', s=list(map(lambda a: 20 if a == 'B' else 0, z)))
else:
plt.scatter(x, y, marker='.', s=0)
plt.show()
残念ながら私のデータポイントは巨大(10K)なので、散点が重なり合ってプロットが乱雑になります。これは単純なラインプロットでは機能しますか? – WanderingMind
@WanderingMind *単純な線のプロット*とはどういう意味ですか? – Leon
はい、私は図形のサイズとマーカーのサイズを変更して散布図で問題を修正しました。私は今あなたの答えを受け入れることができます。 – WanderingMind