plt 图例颜色未显示

plt legend color not shown

'''

import umap
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
reducer=umap.UMAP()
out_training=pd.read_csv('C:/Users/samsung/Downloads/상하수도 데이터(상수관로 누수 감지)/Training/누수감지데이터셋(Training)/1.옥외누수(out-training).csv')
in_training=pd.read_csv('C:/Users/samsung/Downloads/상하수도 데이터(상수관로 누수 감지)/Training/누수감지데이터셋(Training)/2.옥내누수(in-training).csv')
noise_training=pd.read_csv('C:/Users/samsung/Downloads/상하수도 데이터(상수관로 누수 감지)/Training/누수감지데이터셋(Training)/3.기계.전기음(noise-training).csv')
other_training=pd.read_csv('C:/Users/samsung/Downloads/상하수도 데이터(상수관로 누수 감지)/Training/누수감지데이터셋(Training)/4.환경음(other-training).csv')
normal_training=pd.read_csv('C:/Users/samsung/Downloads/상하수도 데이터(상수관로 누수 감지)/Training/누수감지데이터셋(Training)/5.정상음(normal-training).csv')
concat_training=pd.concat([out_training, in_training, noise_training, other_training, normal_training])
concat_training_difference=concat_training[concat_training.columns.difference(['site','sid','ldate','leaktype'])]

embedding=reducer.fit_transform(concat_training_difference)
print(len(embedding))
cdict={"out":'red', "in":'blue', "noise":'yellow', "other":'orange', "normal":'purple'}



fig, ax = plt.subplots()
for g in np.unique(y_training):
    ix = np.where(y_training == g)
    ax.scatter(embedding[:,0][ix], embedding[:,1][ix], color = cdict[g], label = g, s = 0.001)
ax.legend()
plt.show()
'''

legend_color_not_shown

图像中的问题是图例中没有显示颜色。 我该如何解决这个问题?

问题是点尺寸非常小 (s = 0.001)。您可以在创建图例时设置标记比例:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
ax.scatter(np.random.randn(100000).cumsum(), np.random.randn(100000).cumsum(), s=0.001, color='tomato', label='red')
ax.scatter(np.random.randn(100000).cumsum(), np.random.randn(100000).cumsum(), s=0.001, color='lime', label='green')
ax.scatter(np.random.randn(100000).cumsum(), np.random.randn(100000).cumsum(), s=0.001, color='skyblue', label='blue')
ax.legend(markerscale=200)
plt.show()