Matplotlib折线图:使用文本排斥直接标记
我有一个看起来像这样的数据集(标签分开,从Matplotlib折线图:使用文本排斥直接标记,matplotlib,label,jitter,Matplotlib,Label,Jitter,我有一个看起来像这样的数据集(标签分开,从df.复制到剪贴板(index=False)): 我用ax.plot()和df.groupby(“分析”)制作了一个折线图。见下面的代码: fig,ax=plt.subplot() _最后一个列表=[] _最后一个列表=[] _颜色列表=[] 对于名称,df.groupby([“分析”])中的组: ax.绘图(组[“时间点”]、组[“值”]、标记=“o”) _最后一个列表。追加(组[“时间点”]。iat[-1]) _最后一个列表。追加(组[“值”]。ia
df.复制到剪贴板(index=False)
):
我用ax.plot()
和df.groupby(“分析”)
制作了一个折线图。见下面的代码:
fig,ax=plt.subplot()
_最后一个列表=[]
_最后一个列表=[]
_颜色列表=[]
对于名称,df.groupby([“分析”])中的组:
ax.绘图(组[“时间点”]、组[“值”]、标记=“o”)
_最后一个列表。追加(组[“时间点”]。iat[-1])
_最后一个列表。追加(组[“值”]。iat[-1])
_color\u list.append(plt.gca().lines[-1].get\u color())
对于i,zip格式的文本([0,1,2]、“分析A”、“分析B”、“分析C”]):
text(x=\u last\u x\u list[i]+5,y=\u last\u y\u list[i],s=text,color=\u color\u list[i])
对于[“顶部”、“右侧”]中的sp:
ax.spines[sp]。设置_可见(错误)
这将生成以下图表:
我的问题是,我如何让图表右侧的文本彼此保持距离?对于“分析B”注释(橙色),它实际上不需要移动到任何地方,但是对于“分析A”和“分析C”,我如何使它们抖动
我考虑过内核密度估计(KDE),以了解它的密度,但我不知道如何从那里开始,在拥挤时引入人工抖动
#导入高斯kde
从scipy.stats导入高斯_kde
#获取KDE
kde=高斯分布的kde(_last_y_list)
密度=kde(_last_y_list)
密度
#打印:数组([6.94091548,3.94813567,6.86831037])
请提出建议,谢谢
Sample Assay Timepoint Value
Serum A 0 0.275
Serum A 28 0.382
Serum A 90 0.2652
MBC B 0 0.027
MBC B 10 0.081
MBC B 28 0.065
MBC B 90 0.35
Serum C 0 0.1
Serum C 28 0.3
Serum C 90 0.261