在matplotlib python中绘制满足另一列条件的数据范围
我是python新手。我有一个四列数组。我想绘制第2列和第3列,直到第1列满足一个条件。如果列1不满足此范围,则在下一个子批次中绘制。我已经看到,使用where函数可以做到这一点——只是不知道该怎么做 例如:在matplotlib python中绘制满足另一列条件的数据范围,python,matplotlib,Python,Matplotlib,我是python新手。我有一个四列数组。我想绘制第2列和第3列,直到第1列满足一个条件。如果列1不满足此范围,则在下一个子批次中绘制。我已经看到,使用where函数可以做到这一点——只是不知道该怎么做 例如: import numpy as np import scipy as sp import matplotlib.pyplot as plt data = np.array([[17., 18., 19., 20., 31., 46.],\ [1.52,2.5,2.55,2.56,2.53
import numpy as np
import scipy as sp
import matplotlib.pyplot as plt
data = np.array([[17., 18., 19., 20., 31., 46.],\
[1.52,2.5,2.55,2.56,2.53,2.54],\
[7.04,7.06,9.05,11.08,7.06,11.06],\
[0.,0.,0.,0.,4.,4.]])
第一轮并更换第二列:
dataRound = sp.round_(data,1)
data[:,1] = dataRound[:,1]
然后定位/绘制两种不同的条件:
if np.where(data[i]==1.5):
subplot(211)
plt.scatter(data[:,1],data[:,2])
elif np.where(data[i] ==2.5):
subplot(212)
plt.scatter(data[:,1], data[:,2])
以下是回答您问题的代码片段:
t=linspace(0,1000, 1000)
y=sin(0.1*t)
ii=find(t>100)
plot(t[ii],y[ii])
基本上,使用find
可以生成满足逻辑条件(t>100)的索引列表,然后使用该列表
p、 美国把np。和plt。需要的地方
更新:
这是你需要的吗?注意,您必须交换[1,:],而不是[:,1]。建议-打印出你正在做的事情以确保
import numpy as np
import scipy as sp
import matplotlib.pyplot as plt
data = np.array([[17., 18., 19., 20., 31., 46.],\
[1.52,2.5,2.55,2.56,2.53,2.54],\
[7.04,7.06,9.05,11.08,7.06,11.06],\
[0.,0.,0.,0.,4.,4.]])
dataRound = sp.round_(data,1)
data[1,:] = dataRound[1,:]
ax1=plt.subplot(211)
ax2=subplot(212)
ax1.scatter(data[1,data[1,:]<=1.5], data[2,data[1,:]<=1.5], color = 'g')
ax2.scatter(data[1,data[1,:]>=2.5], data[2,data[1,:]>=2.5], color = 'b')
将numpy导入为np
将scipy作为sp导入
将matplotlib.pyplot作为plt导入
数据=np.数组([[17,18,19,20,31,46])\
[1.52,2.5,2.55,2.56,2.53,2.54],\
[7.04,7.06,9.05,11.08,7.06,11.06],\
[0.,0.,0.,0.,4.,4.]])
dataRound=sp.round(数据,1)
数据[1,:]=dataRound[1,:]
ax1=plt.子批次(211)
ax2=子批次(212)
ax1.scatter(数据[1,数据[1,:]=2.5],颜色='b')
如果要绘制第二列和第三列,则:
ax1.scatter(data[2,data[1,:]<=1.5], data[3,data[1,:]<=1.5], color = 'g')
ax2.scatter(data[2,data[1,:]>=2.5], data[3,data[1,:]>=2.5], color = 'b')
ax1.scatter(数据[2,数据[1,:]=2.5],颜色='b')
对于阵列,您将如何执行此操作?其中一列中的某些值可能会出现在另一列中,即使它们应该被忽略。此外,数组中没有依赖项