python - 我正在尝试绘制具有独特颜色但出现错误的集群
问题描述
我只是想绘制 x, y 然后用集群着色它们。每个集群都应该有唯一的颜色。但我收到错误。我尝试不使用 numpy 数组,但仍然出现错误。
" 形状为 (5113,) 的 c 不能作为大小为 5113 的 x、大小为 5113 的 y 的颜色序列""
x = np.array(df['ip_indexed'])
print(x.shape)
y = np.array(df['geohash_indexed'])
print(y.shape)
labels = np.array(df['clusters'])
print(labels.shape)
''' output.
(5113,)
(5113,)
(5113,)
'''
LABEL_COLOR_MAP = {9066 : 'r',
9068: 'silver',
17182 : 'k',
17183: 'c',
17184: 'indigo',
17185: 'tan',
17186: 'plum',
17187: 'yello',
17188:'olive',
17189:'deeppink'
}
label_color = np.array([LABEL_COLOR_MAP[l] for l in labels])
label_color.shape
plt.figure(figsize=(50, 10))
plt.xlabel("ip_address", fontsize= 20)
plt.ylabel("geohash", fontsize= 20)
plt.title("clusters", fontsize= 50)
colors = np.random.rand(5113)
plt.scatter(x, y , c = label_color)
ValueError: c of shape (5113,) not acceptable as a color sequence for x with size 5113, y with size 5113
解决方案
不久前我遇到了同样的问题,并在寻找解决方案时偶然发现了这篇文章。我可以明确地说:在行中,、 和plt.scatter(x, y , c = label_color)
的形状必须相同,而且我相信,如果它们是 pandas 数据框,这三个都是最好的。我所有成功对象的形状都不是你的。我认识到您正在测试您的陈述中的形状,但似乎有些不对劲。x
y
c
(5113, 1)
(5113,)
print()
我绝不是专业人士,在某些方面我可能是错的,但这就是我找到自己解决方案的方式。希望它可以将您和其他人推向正确的方向。
推荐阅读
- flutter - Flutter - 使用 Web 插件捆绑资产
- python - 为什么python列表显示切片异常?
- azure - Azure Synapse 外部表位置参数化
- android - android:layout_weight 仅适用于 LinearLayout 还是您也可以在 RelativeLayout 中使用它?
- azure - Azure Vnet 中的条件转发器不起作用
- html - 如何将特定元素添加到现有的 tumblr 主题?
- reactjs - 有没有办法在 createSlice 中访问全局状态?
- jquery - 为什么 window.location.href 消除了哈希值
- android - 使用 Android Intent 打开 Facebook 个人资料
- jquery - 在条件下禁用 Kendo Telerik UI 字体图标