我有以下数据框:
df = pd.DataFrame([
['A', 'X', '2020-10-01', 1],
['A', 'X', '2020-10-02', 2],
['A', 'X', '2020-10-03', 3],
['A', 'Y', '2020-10-01', 4],
['A', 'Y', '2020-10-02', 5],
['A', 'Y', '2020-10-03', 6],
['B', 'Z', '2020-10-01', 7],
['B', 'Z', '2020-10-02', 8],
['B', 'Z', '2020-10-03', 9],
['B', 'Z', '2020-10-01', 10],
['B', 'Z', '2020-10-02', 11],
['B', 'Z', '2020-10-03', 12],
],
columns=['Q', 'W', 'DT', 'V']
)
我想创建一个散点图:
fig, ax = plt.subplots(figsize=(12, 8), frameon=False)
fig.suptitle('Plotz', fontsize=16)
ax.set_title('DF Plot')
ax.scatter(x=df.DT, y=df.W, s=df.V)
这创建了下面的图表: 我想找出实际发生了什么,因为图表上有9个数据点,而数据中有12个数据点。注释图表不起作用,因为它会在顶部行注释两个值。
for i, txt in enumerate(df.V):
ax.annotate(txt, (df.DT[i], df.W[i]), fontsize=14)
有没有一种方法可以在 x,y 值对有多个值的情况下找出发生了什么(就像这种情况)?
更新:也许我表述不清楚。在这种情况下,Matplotlib 的默认行为是什么?是最后一个值胜出吗?如何在图上显示实际值?(与显示两个值的注释代码不同,它显示真实值)。
在更多的谷歌搜索后,我认为答案是:
Z
点重叠。 - CDJB