我想更改熊猫散点图的x和y标签。 X轴和Y轴是IP地址,我使用简单的ip2int函数将它们转换为整数。我想在X和Y轴上有真正的“字符串”(即IP地址)标签。我想这一点,但它不能很好地工作(见截图)作为熊猫散点图中x和y标签的IP地址
ipcon['a']=ipcon['srcip'].map(ip2int)
ipcon['b']=ipcon['dstip'].map(ip2int)
ax = ipcon.plot.scatter(x='a',y='b',s=50)
ax.set_xticklabels(ipcon['srcip'])
ax.set_yticklabels(ipcon['dstip'])
ax.set_xlabel("Source IP")
ax.set_ylabel("Destination IP")
screenshot of the resulting scatter plot
反正是有解决这个问题?由于
**编辑 - 工作示例**
import pandas as pd
%pylab inline
ipconn=[["192.168.1.1","192.168.1.2"],["192.168.1.1","192.168.1.2"],["192.168.1.1","192.168.1.3"],["192.168.1.1","192.168.1.99"]]
df = pd.DataFrame(ipconn)
import socket
import struct
def ip2int(addr):
return struct.unpack("!I", socket.inet_aton(addr))[0]
def int2ip(addr):
return socket.inet_ntoa(struct.pack("!I", addr))
df["x"]=df[0].map(ip2int)
df["y"]=df[1].map(ip2int)
ax = df.plot.scatter(x='x',y='y',s=50)
ax.set_xticklabels(df[0])
ax.set_yticklabels(df[1])
ax.set_xlabel("Source IP")
ax.set_ylabel("Destination IP")
在这个例子中,你可以看到,X,Y轴标签不与IP对准值
的最佳方式,我想可以设置一个函数来创建轴标签。
什么是你想在散点图绘图源和目的IP地址在视觉上得到什么?你最终会得到一系列垂直点。 –
可否请您添加一些真实的代码以便能够重现您的问题?我的意思是在ordet中输入一些样本来运行你的代码。 –
@ cricket_007在这样的图表中,您将能够看到特定主机是否正在扫描所有其他(垂直线)。您还将看到“关键”服务器,即回答所有其他主机(水平线)的主机。 – hoZr