python - Matplotlib 中使用 Numpy 的条件着色 where
问题描述
我想要实现的是有条件地为我的散点图着色。我关注了这篇文章,但我明白了TypeError: len() of unsized object
。我正在做以下事情
for i in range(n_cells):
col = np.where(cell_list[i].m_n == 1, 'g', 'k')
plt.scatter(cell_list[i].x, cell_list[i].y, c = col, alpha = 0.5, s = 2)
cell_list
是一个 s 的数组cell
,它是一个用户定义的对象。我已经检查并确保这是一个正确大小col
的数组。此外,如果您更改为例如,该图可以正常工作。我对 Python 比较陌生,所以我找不到问题所在。g
k
c = col
c = 'b'
解决方案
由于 np.where 总是返回一个 numpy 对象,因此使用 str(col) 适用于以下脚本。
import matplotlib.pyplot as plt
import numpy as np
col = np.where(0 == 1, 'g', 'k')
plt.scatter([0, 1], [0, 1], c = str(col), alpha = 0.5, s = 2)
plt.show()
推荐阅读
- php - 为某些网站切换 nginx php 版本
- php - stripe.handleCardPayment 意图密码的值无效
- ruby-on-rails - 在 Rails 中配置 URL
- android - android Q中的无效列lower(substr(displayname,1,1))
- c# - 抵押计算器:计算每月还款总额的公式
- python - 搜索文件中包含特定单词/字符串组合的每个行列表
- azure - 如何使用 delta 目录在 hive 中创建分区和存储的外部表?
- flutter - 当 Navigator.push 时,FutureBuilder/StreamBuilder 调用了不必要的时间?
- java - 发送没有 accessToken 的验证邮件
- java - 从 SOAP UI 发送 byte[] 数据