我想创建一个散点图(对于离散的x,每个x仅一个点),并且对于每个点,我想用一条线可视化到其期望值的距离,最好是在Seaborn中。
Basically, I want something like this(摘自this post),但我希望误差线仅沿一个方向,而不是向上和向下。错误栏的行应在我的期望值的结尾处。
编辑:一个例子。
某些代码:
import matplotlib.pyplot as plt
some_y=[1,2,3,7,9,10]
expected_y=[2, 2.5, 2, 5, 8.5, 9.5]
plt.plot(some_y, ".", color="blue")
plt.plot(expected_y, ".", color="red")
plt.show()
此外,它不必看起来完全。只是朝这个方向的东西。
答案 0 :(得分:1)
产生多行的最有效方法是使用LineCollection
。要同时显示点,您将使用其他scatter
。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
some_y=[1,2,3,7,9,10]
expected_y=[2, 2.5, 2, 5, 8.5, 9.5]
x = np.repeat(np.arange(len(some_y)), 2).reshape(len(some_y), 2)
y = np.column_stack((some_y, expected_y))
verts = np.stack((x,y), axis=2)
fig, ax = plt.subplots()
ax.add_collection(LineCollection(verts))
ax.scatter(np.arange(len(some_y)), some_y)
plt.show()