今天在研究Plotly繪制散點圖的方法
使用Python3.6 + Plotly
Plotly版本2.0.0
在開始之前先說說,還需要安裝庫Numpy,安裝方法在我的另一篇博客中有寫到:https://www.cnblogs.com/ws17345067708/p/10531531.html
因為Plotly沒有自己獨立的線性圖形函數,所以把線性圖形與散點圖形全部用一個函數實現
這個函數是Scatter函數
下面舉幾個簡單的例子
先畫一個純散點圖,代碼如下:
import plotly import plotly.graph_objs as go import numpy pyplt = plotly.offline.plot #使用離線模式 N = 100 random_x = numpy.linspace(0, 1, N) random_y0 = numpy.random.randn(N)+5 random_y1 = numpy.random.randn(N) random_y2 = numpy.random.randn(N)-5 #上面是一些隨機數據 trace0 = go.Scatter( x = random_x, y = random_y0, mode = 'markers', # 繪制純散點圖 name = 'markers' # 圖例名稱 ) data = [trace0] pyplt(data, filename='tmp/scatter_diagram.html')#html放置的位置
運行程序會得到如下圖所示圖形
接下來我們畫一個線性圖,數據還是之前的數據。看看是什么樣子,代碼如下
import plotly import plotly.graph_objs as go import numpy pyplt = plotly.offline.plot #使用離線模式 N = 100 random_x = numpy.linspace(0, 1, N) random_y0 = numpy.random.randn(N)+5 random_y1 = numpy.random.randn(N) random_y2 = numpy.random.randn(N)-5 trace1 = go.Scatter( x = random_x, y = random_y2, mode = 'lines', # 線性圖 name = 'lines' ) data = [trace1] pyplt(data, filename='tmp/line.html')
我們會得到如下圖所示的線形圖
下面我們把線性圖,和散點圖合到一起
import plotly import plotly.graph_objs as go import numpy pyplt = plotly.offline.plot #使用離線模式 N = 100 random_x = numpy.linspace(0, 1, N) random_y0 = numpy.random.randn(N)+5 random_y1 = numpy.random.randn(N) random_y2 = numpy.random.randn(N)-5 trace1 = go.Scatter( x = random_x, y = random_y1, mode = 'lines+markers', # 散點+線的繪圖 name = 'lines+markers' ) data = [trace1] pyplt(data, filename='tmp/add.html')
得到如下圖所示圖例
三個圖在一張圖中表示的例子
import plotly import plotly.graph_objs as go import numpy pyplt = plotly.offline.plot #使用離線模式 N = 100 random_x = numpy.linspace(0, 1, N) random_y0 = numpy.random.randn(N)+5 random_y1 = numpy.random.randn(N) random_y2 = numpy.random.randn(N)-5 trace0 = go.Scatter( x = random_x, y = random_y0, mode = 'markers', # 純散點的繪圖 name = 'markers' # 曲線名稱 ) trace1 = go.Scatter( x = random_x, y = random_y1, mode = 'lines+markers', # 散點+線的繪圖 name = 'lines+markers' ) trace2 = go.Scatter( x = random_x, y = random_y2, mode = 'lines', # 線的繪圖 name = 'lines' ) data = [trace0,trace1,tarace2] pyplt(data, filename='tmp/all.html')
得到如下圖
可以看到,三個圖,繪制在一張圖上了!
也可以對樣式進行設置下面看個例子,改變一下顏色,代碼如下:
import plotly import plotly.graph_objs as go import numpy pyplt = plotly.offline.plot #使用離線模式 N = 100 random_x = numpy.linspace(0, 1, N) random_y0 = numpy.random.randn(N)+5 random_y1 = numpy.random.randn(N) random_y2 = numpy.random.randn(N)-5 trace0 = go.Scatter( x = random_x, y = random_y0, mode = 'markers', # 純散點圖 name = 'markers', # 曲線名稱 marker = dict( size = 10, # 設置點的寬度 color = 'rgba(255, 182, 193, .9)', #設置曲線的顏色 line = dict( width = 2, # 設置線條的寬度 color = 'rgb(0, 255, 0)' #設置線條的顏色 ) ) ) data = [trace0] pyplt(data, filename='tmp/style.html')
marker的參數設置很重要,設置顏色color,大小size
line設置線條寬度width,color 設置線條顏色等