有没有办法将这个函数应用到 Altair 散点图上?
Is there a way to apply this function onto an Altair scatter plot?
我希望我可以将此 draw_vector 函数应用于 Altair 散点图而不是 matplotlib。我在解决方法时遇到问题。我们将不胜感激您的专业知识!
def draw_vector(v0, v1, ax=None):
ax = ax or plt.gca()
arrowprops=dict(arrowstyle='->',
linewidth=2,
shrinkA=0, shrinkB=0)
ax.annotate('', v1, v0, arrowprops=arrowprops)
# plot data
plt.scatter(X[:, 0], X[:, 1], alpha=0.2)
for length, vector in zip(pca.explained_variance_, pca.components_):
v = vector * 3 * np.sqrt(length)
draw_vector(pca.mean_, pca.mean_ + v)
plt.axis('equal');
以上代码生成的内容供参考:
我认得那个图表
不幸的是,在构建 Altair 的渲染库 Vega-Lite 中,实际上并没有任何对箭头的支持,因此对于使用 Altair 渲染箭头并没有什么好的解决方案。您可以在该功能的跟踪问题中看到一些解决方法:https://github.com/altair-viz/altair/issues/914
我希望我可以将此 draw_vector 函数应用于 Altair 散点图而不是 matplotlib。我在解决方法时遇到问题。我们将不胜感激您的专业知识!
def draw_vector(v0, v1, ax=None):
ax = ax or plt.gca()
arrowprops=dict(arrowstyle='->',
linewidth=2,
shrinkA=0, shrinkB=0)
ax.annotate('', v1, v0, arrowprops=arrowprops)
# plot data
plt.scatter(X[:, 0], X[:, 1], alpha=0.2)
for length, vector in zip(pca.explained_variance_, pca.components_):
v = vector * 3 * np.sqrt(length)
draw_vector(pca.mean_, pca.mean_ + v)
plt.axis('equal');
以上代码生成的内容供参考:
我认得那个图表
不幸的是,在构建 Altair 的渲染库 Vega-Lite 中,实际上并没有任何对箭头的支持,因此对于使用 Altair 渲染箭头并没有什么好的解决方案。您可以在该功能的跟踪问题中看到一些解决方法:https://github.com/altair-viz/altair/issues/914