因此,我有一个包含3列的 Dataframe :日期、价格、文本
第一个
我想在折线图上绘制日期和价格,但当我将鼠标悬停在折线上时,我希望它显示与该日期对应的行中的文本。
例如,当我将鼠标悬停在与2022-11-27对应的点上时,我希望文本显示“EEE”
我在matplotlib等中尝试了一些东西,但只能从x轴和y轴获取数据来显示,但我不知道如何显示不同列的数据。
因此,我有一个包含3列的 Dataframe :日期、价格、文本
第一个
我想在折线图上绘制日期和价格,但当我将鼠标悬停在折线上时,我希望它显示与该日期对应的行中的文本。
例如,当我将鼠标悬停在与2022-11-27对应的点上时,我希望文本显示“EEE”
我在matplotlib等中尝试了一些东西,但只能从x轴和y轴获取数据来显示,但我不知道如何显示不同列的数据。
2条答案
按热度按时间djmepvbi1#
你可以用Plotly
wfveoks02#
您应该知道,游标和 Dataframe 索引可能会很好地处理散点图上的 * 点 *,但处理线图则有点棘手。
使用线图时,matplotlib会在两个数据点之间绘制直线(基本上,这是线性插值),因此必须考虑特定的逻辑:
1.指定预期行为
1.当光标停留在2个数据点“之间”时,实现相应的鼠标悬停行为。
下面的库/链接可能提供了处理散点图和线图的工具,但我不够专业,无法在SO链接或mplcursors链接中为您指出这一特定部分。
(此外,在你最初的问题中没有清楚地说明确切的预期行为;考虑编辑/澄清)
因此,作为DankyKang's answer的替代方法,请查看以下SO问题和答案,其中涵盖了大量鼠标悬停的可能性:How to add hovering annotations to a plot
值得一提的是这个库:https://mplcursors.readthedocs.io/en/stable/
报价:
mplcursors为Matplotlib提供了交互式数据选择光标。它的灵感来自mpldatacursor,API简化了很多。mplcursors需要Python 3,Matplotlib≥3.1。
具体来说,此示例基于 Dataframe :https://mplcursors.readthedocs.io/en/stable/examples/dataframe.html
报价:
DataFrame可以类似于任何其他类型的输入来使用。在这里,我们使用两列生成散点图,并使用所有列标记点。本示例还将阴影效果应用于悬停面板。
copy-pasta of code example,如果认为此答案不够完整: