plt 图例颜色未显示

发布于 2025-01-20 09:06:18 字数 1563 浏览 3 评论 0原文

'''

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

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

'''

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

The problem in the image is that in the legend, there are no colors shown.
How can I solve this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

歌枕肩 2025-01-27 09:06:18

问题是非常小的点大小(s = 0.001)。 You can set a markerscale when creating the legend:

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()

The problem is the very small dot size (s = 0.001). You can set a markerscale when creating the legend:

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()

scatter plot with small dots and markerscale in legend

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文