我想更改熊貓散點圖的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