Python Matplotlib散点图标签不区分点
我试图在散点图中绘制一系列IP地址,然后根据它们的“检测”来标记它们,检测值为0或大于0 0 虽然这个情节确实被生成,但它将所有的点涂成相同的颜色,而不是用恶意的标签将它们分开,非常感谢您的帮助Python Matplotlib散点图标签不区分点,python,pandas,matplotlib,scatter-plot,Python,Pandas,Matplotlib,Scatter Plot,我试图在散点图中绘制一系列IP地址,然后根据它们的“检测”来标记它们,检测值为0或大于0 0 虽然这个情节确实被生成,但它将所有的点涂成相同的颜色,而不是用恶意的标签将它们分开,非常感谢您的帮助 df = pd.io.sql.read_sql('SELECT Date_scanned, IP, Detections FROM URLs', con=conn) df['Date_scanned']=df['Date_scanned'].str.split(" ").str[0] detection
df = pd.io.sql.read_sql('SELECT Date_scanned, IP, Detections FROM URLs', con=conn)
df['Date_scanned']=df['Date_scanned'].str.split(" ").str[0]
detections = df['Detections'].values
for row in df:
for x in detections:
if x > 0:
malicious = "Yes"
else:
malicious = "No"
plt.scatter(df['Date_scanned'], df['IP'], label=malicious)
plt.legend(loc='best')
plt.show()
您没有告诉
scatter()
相反,您要做的是在一次调用中绘制条件为“恶意”的所有点,并指定使用哪种标记/颜色,然后在第二次调用非恶意条件时指定单独的标记
大概是这样的:
df = pd.io.sql.read_sql('SELECT Date_scanned, IP, Detections FROM URLs', con=conn)
df['Date_scanned']=df['Date_scanned'].str.split(" ").str[0]
plt.scatter(df.loc[df.Detections>0,'Date_scanned'], df.loc[df.Detections>0,'IP'], marker='o', color='red', label="YES")
plt.scatter(df.loc[df.Detections≤0,'Date_scanned'], df.loc[df.Detections≤0,'IP'], marker='x', color='blue', label="NO")
plt.legend(loc='best')
plt.show()
如果没有请提供模型数据,就很难提供完整的答案,尤其是check out工作得非常完美!谢谢!