如何解决在脊图中绘制一个点
具有以下数据框:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import joypy
sample1 = np.random.normal(5,10,size = (200,5))
sample2 = np.random.normal(40,5,5))
sample3 = np.random.normal(10,5))
b = []
for i in range(0,3):
a = "Sample" + "{}".format(i)
lst = np.repeat(a,200)
b.append(lst)
b = np.asarray(b).reshape(600,1)
data_arr = np.vstack((sample1,sample2,sample3))
df1 = pd.DataFrame(data = data_arr,columns = ["foo","bar","qux","corge","grault"])
df1.insert(0,column="sampleNo",value = b)
我能够生成以下脊线图:
fig,axes = joypy.joyplot(df1,column = ['foo'],by = 'sampleNo',alpha=0.6,linewidth=.5,linecolor='w',fade=True)
现在,假设我有以下向量:
vectors = np.asarray([10,40,50])
我如何将这些点中的每一个绘制到密度图中?例如,在样本 1 的分布图上,我希望在 10 上有一个点(或线);样品 2 上 40 等.
我试过使用 axvline,我有点希望它可以工作,但没有运气:
for ax in axes:
ax.axvline(vectors(ax))
我不确定我想要的东西是否可能...
解决方法
你几乎找到了正确的方法。
axes
包含 4 个轴对象,按顺序是:从上到下的三个堆叠图和所有其他 3 个所在的大图。所以,
for ax,v in zip(axes,vectors):
ax.axvline(v)
zip()
只会压缩到较短的可迭代对象,即 vectors
。因此,它会将 vectors
中的每个点与堆叠图中的每个轴进行匹配。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。