簡體   English   中英

label這幾個點怎么散plot

[英]How to label these points on the scatter plot

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
data = pd.read_excel("path to the file")
fig, ax = plt.subplots()
fig.set_size_inches(7,3)
df = pd.DataFrame(data, columns = ['Player', 'Pos', 'Age'])
df.plot.scatter(x='Age',
                      y='Pos',
                      c='DarkBlue', xticks=([15,20,25,30,35,40]))
plt.show()

得到了plot但是不能label這幾點

如果您想要每個點 label,您可以遍歷繪制的每個坐標,在繪制點的 position 處使用plt.text()為其分配一個 label,如下所示:

from matplotlib import pyplot as plt

y_points = [i for i in range(0, 20)]
x_points = [(i*3) for i in y_points]

offset = 5

plt.figure()
plt.grid(True)
plt.scatter(x_points, y_points)

for i in range(0, len(x_points)):
    plt.text(x_points[i] - offset, y_points[i], f'{x_points[i]}')
    
plt.show()

在上面的示例中,它將給出以下內容:

繪圖示例

偏移量只是為了使標簽更具可讀性,使它們不在散點的正上方。

顯然我們無法訪問您的電子表格,但同樣的基本概念也適用。

編輯

對於非數值,您可以簡單地將字符串定義為坐標。 這可以這樣做:

from matplotlib import pyplot as plt

y_strings = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
x_values = [i for i, string in enumerate(y_strings)]

# Plot coordinates:

plt.scatter(x_values, y_strings)

for i, string in enumerate(y_strings):
    plt.text(x_values[i], string, f'{x_values[i]}:{string}')

plt.grid(True)
plt.show()

其中將提供以下 output:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM