だから私はこれに少し取り組んでいて、散布図のラベルを自動調整できる理由を誰かが見てくれるかどうかを知りたかっただけです。解決策を探していたときに、 https: //github.com/Phlya/adjustText にあるadjustTextライブラリに出会いました。うまくいくようですが、データフレームからプロットする例を見つけようとしています。AdjustText の例を複製しようとすると、エラーが発生するので、これが現在のコードです。
df["category"] = df["category"].astype(int)
df2 = df.sort_values(by=['count'], ascending=False).head()
ax = df.plot.scatter(x="category", y="count")
a = df2['category']
b = df2['count']
texts = []
for xy in zip(a, b):
texts.append(plt.text(xy))
adjust_text(texts, arrowprops=dict(arrowstyle="->", color='r', lw=0.5))
plt.title("Count of {column} in {table}".format(**sql_dict))
しかし、その後、この TypeError: TypeError: text() missing 2 required positional arguments: 'y' and 's' を取得しました。これは、座標をピボットするために変換しようとしたものです。機能しますが、座標が重なるだけです。
df["category"] = df["category"].astype(int)
df2 = df.sort_values(by=['count'], ascending=False).head()
ax = df.plot.scatter(x="category", y="count")
a = df2['category']
b = df2['count']
for xy in zip(a, b):
ax.annotate('(%s, %s)' % xy, xy=xy)
ここでわかるように、SQL のテーブルから構築された df を取得しています。この特定のテーブルがどのように見えるかをここで説明します。この特定の表では、何人の人がその期間滞在したかを比較した滞在日数です。そのため、データのサンプルは次のようになります。上で 2 番目のデータフレームを作成したので、プロットの最高値のみにラベルを付けました。これは、Python での視覚化のグラフ化に関する私の最初の経験の 1 つです。
[![picture of a graph of overlapping items][1]][1]
など。本当にありがとう。他に何か必要な場合はお知らせください。
これがdfの例です
category count
0 2 29603
1 4 33980
2 9 21387
3 11 17661
4 18 10618
5 20 8395
6 27 5293
7 29 4121