gpt4 book ai didi

python - Seaborn 和 Matplotlib 添加相对于轴的文本

转载 作者:行者123 更新时间:2023-12-03 16:04:00 24 4
gpt4 key购买 nike

尝试使用 seaborn 和 matplotlib 绘制一些数据,需要在我的绘图中添加一些描述性文本,通常我只使用 matplotlib 命令文本,并将其放置在相对于轴的位置,但它似乎没有根本没有工作,除了轴、刻度等上的默认内容之外,我没有显示任何文本。我想要的是在绘图区域的左上角显示一些自定义文本。

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

df 是我的 Pandas 数据框,它只包含一些时间列和带有标记“p”的坐标数据,这是一个标识符。
ax2 = sns.scatterplot("t","x", data = df, hue = "p")
ax2.text(0.1, 0.9, r"$s = {}, F = {}, N = {}$".format(value1, valu2, value3))

plt.show()

任何人都知道我如何让一些文本显示,相对定位,“值”项只是我想要打印的数据的变量。谢谢。

最佳答案

您想在“绘图区域的左上角”放置一个文本。 “绘图区域”称为轴。想到了三个解决方案:
坐标区中的文本
您可以在轴坐标中指定文本。这些范围从 (0,0)在轴的左下角到 (1,1)在坐标区的右上角。通过ax.transAxes获得相应的变换.

import matplotlib.pyplot as plt
fig, ax = plt.subplots()

ax.text(0.02, 0.98, "Text", ha="left", va="top", transform=ax.transAxes)

plt.show()
带有偏移量的注释
在上面的文本和左上角之间的距离将取决于轴的大小。因此,将文本准确定位在左上角(即轴坐标中的 (0,1))然后将其偏移一些点(即以绝对单位)可能是有益的。
ax.annotate("Text", xy=(0,1), xycoords="axes fraction",
xytext=(5,-5), textcoords="offset points",
ha="left", va="top")
这里的结果与上面的类似,但与轴或图形大小无关;文本将始终与左上角相距 5 pts。
anchor 定位置的文本
最后,您可能根本不想指定任何坐标。毕竟 "upper left"作为定位信息应该足够了。这将通过 AnchoredText 实现如下。
import matplotlib.pyplot as plt
from matplotlib.offsetbox import AnchoredText

fig, ax = plt.subplots()

anc = AnchoredText("Text", loc="upper left", frameon=False)
ax.add_artist(anc)

plt.show()

关于python - Seaborn 和 Matplotlib 添加相对于轴的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54949755/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com