2020研究生數模整理(2):plotly雙座標軸繪製多個軌跡
B題最後一題為視覺化,繪製各個變數的變動對產品辛烷值和硫的值的影響。由於變數有將近30個,為了節省論文的長度,我們選擇雙座標繪圖。這裡選擇的plotly是plotly.offline。
1 載入包
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import plotly.offline as py #主角,繪圖的庫
import plotly.graph_objs as go
import plotly.io as pio #儲存圖片要用的庫
2 準備好視覺化要用的資料
#要視覺化的資料,使用列表儲存
#為了方便理解,這裡的資料和數模題目無關
x0 = [x for x in range(-5,5)]
y1 = [22,33,44,55,66,77,88,99,101,120]
y2 = [26,23,25,24,24,22,23,22,21,20]
3 繪製第一個軌跡
#定義第一個軌跡,x0和y1的關係
#引數mode表示繪製點、線還是點和線都有,這裡點和線都要繪製
#顏色可自定定義,在繪製多條線的時候,如果要使用不同的顏色,可以使用十六進位制配色卡選擇顏色
trace0 = go.Scatter(x=x0, y=y1, mode='lines+markers', name='RON_Product',line=dict(color='#283734'),opacity=0.9)
data1 = [trace0]
#設定佈局引數
layout = go.Layout(title="RON Product + Sulfur Content: "+str(col_temp), #title
plot_bgcolor='#EEEEFF', #背景色
paper_bgcolor='#F8F8FF',
autosize=False,width=645,height=480,
yaxis=dict(title="RON_Product"),
yaxis2=dict(title="Sulfur_content", overlaying='y', side="right"),
legend=dict(x=0, y=1.18, font=dict(size=8, color="black")))
#繪製第一個軌跡
fig = go.Figure(data=data1, layout=layout)
4 新增其他軌跡
#新增軌跡2:變數的最優值,為一條豎線,Y的範圍是為了控制線的長度,儘量豎著佔滿整個Y軸的範圍,可自行調節
#mode選擇lines表示只繪製線
best_v = 1
fig.add_trace(
go.Scatter(
x= [best_v,best_v],
y = [20,120],line = dict(color='#006c54'),name = 'Optimal Choice',mode = "lines"
))
#新增軌跡3:x0和y2的關係
fig.add_trace(go.Scatter(x=x0,
y=y2,
line=dict(color='#BE7591'),
mode='lines+markers',
name='Sulfur_content',
yaxis="y2")
)
5 儲存並展示
敲重點!!!由於plotly的庫是為了網頁視覺化而生的,所以想要寫個程式自行儲存圖片不僅僅是使用save_img了,詳細的儲存教程可以參考連結:https://www.csdn.net/gather_21/Mtjacg5sODI1MzctYmxvZwO0O0OO0O0O.html。
儘管我們掌握了自動儲存圖片的方法,但是發現儲存的圖片比較模糊,不知道是不是我引數設定的問題。所以最後將近三十張圖是手動截下來的,所以如果想要批量儲存,還是推薦seaborn。
#儲存圖片
fig.write_image('./test1.png') #選擇手動截圖可以把這行註釋掉
fig.show()
看一下效果圖(比賽產出的一個圖):
相關文章
- plotly 座標軸範圍截斷rangebreaks使用的一個注意點
- 如何繪製完美的滑鼠軌跡
- D3.js座標軸的繪製方法、新增座標軸的刻度和各比例尺的座標軸(V3版本)JS
- 繪製雙Y軸圖
- 風場視覺化:繪製軌跡視覺化
- d3.js 入門學習記錄(五) 開始繪製座標軸JS
- Python實現雙X軸雙Y軸繪圖Python繪圖
- Matlab三維空間座標圖繪製Matlab
- python 繪製雙y軸,將折線加粗並在折線上做標記Python
- 軌跡聯邦用到的具體公式 + 軌跡模組的設計公式
- pyqt5+matplotlib繪製動態雙y軸曲線QT
- 自動生成相機標定軌跡
- cesium製作自己的騎行軌跡
- 時間軸、流程類時間軸繪製
- Echarts:10-5-2:柱狀圖(座標軸刻度與標籤對齊)Echarts
- excel折線圖自定x軸y軸 excel做xy軸座標圖Excel
- 如何使用Python和Plotly繪製3D圖形Python3D
- 如何在 Matlab 中繪製帶箭頭的座標系Matlab
- R語言ggplot2去掉圖形和座標軸間隙R語言
- python嶺跡圖繪製函式Python函式
- KITTI_00_SPTAM軌跡和KITTI_00_ORB軌跡ORB
- echarts 隱藏X軸底部超出的座標線Echarts
- canvas繪製多個圓圈效果Canvas
- 百度路書實現軌跡回放(標準)
- 軌跡資料 (三)
- 軌跡規劃理解
- python-科研繪圖系列(6)-深度模型準確率,誤差收斂曲線圖;雙座標繪圖;雙座標圖例放置在一個框中;帶95%置信區間的曲線圖Python繪圖模型
- dotnet DirectX 做一個簡單繪製折線筆跡的 D2D 應用
- Qt/C++路徑軌跡回放/回放每個點訊號/回放結束訊號/拿到移動的座標點經緯度QTC++
- D3.js(v3)+react 製作 一個帶座標軸與比例尺的折線圖JSReact
- python畫圖 去除橫縱座標值;設定橫縱座標名稱;設定座標軸刻度大小Python
- ECharts圖座標軸文字換行問題處理Echarts
- Leaflet 帶箭頭軌跡以及沿軌跡帶方向的動態marker
- canvas 繪製雙線技巧Canvas
- 聊聊 RocketMQ 訊息軌跡MQ
- 智慧手環軌跡APIAPI
- 利用canvas陰影功能與雙線技巧繪製軌道交通大屏專案效果Canvas
- 1個小時快速搭建一個物流系統(包括軌跡查詢,物流動態提醒,軌跡視覺化,寄件)視覺化