首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要在matplotlib中绘制两种不同颜色的数据

需要在matplotlib中绘制两种不同颜色的数据
EN

Stack Overflow用户
提问于 2019-06-09 17:07:11
回答 1查看 101关注 0票数 0

我有一些数据,比如:

代码语言:javascript
复制
x = [0,1,0,0,0,1,0,.....]
w = [5,3,3.4,5,3,5,.....]
y = [1,1,0,1,0,0,0,.....]

我需要绘制(x,w),这个点的颜色应该由y决定,就像如果我有x = 1y = 1w = 3,那么这个点应该是color1。如果我有x = 1y = 0,那么对于x = 0,应该是color2color3,对于x = 0,应该是y = 1,对于color4,应该是y = 0

我已经尝试了一些if else语句,但无法使其工作。

我的代码是:

代码语言:javascript
复制
def plot(x,y,w):
    for (a,b) in zip(x,y):
        if (a,b)==(0,0):
            plt.plot(x,w,'ro')

我想为不同的(x,y)值得到一个不同的色点。

EN

Stack Overflow用户

发布于 2019-06-09 17:14:30

你可以使用散点图:

代码语言:javascript
复制
import numpy as np
colors = 2 * np.array(x) + np.array(y)
plt.scatter(x,w, c = colors)

这会自动为您选择颜色,如果您想要使用自定义颜色,可以执行以下操作:

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt
colors = 2 * np.array(x) + np.array(y)
plt.scatter(x,w, c = colors)

如果你想连接这些点,你可以这样做:

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt
colorNames = np.array(['red', 'blue', ...])
colors = 2 * np.array(x) + np.array(y)
plt.scatter(x,w, c = colorNames[colors])
plt.plot(x,w)

这里,我认为x和y的0和1的序列是2比特的颜色编码

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56513320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档