又一個(gè)Python神器,不寫(xiě)一行代碼,就可以調(diào)用Matplotlib繪圖!
sviewgui介紹
sviewgui是一個(gè)基于 PyQt 的 GUI,用于 csv 文件或 Pandas 的 DataFrame 的數(shù)據(jù)可視化。此 GUI 基于 matplotlib,您可以通過(guò)多種方式可視化您的 csv 文件。主要特點(diǎn):
- Ⅰ 散點(diǎn)圖、線圖、密度圖、直方圖和箱線圖類型;
- Ⅱ 標(biāo)記大小、線寬、直方圖的 bin 數(shù)量、顏色圖的設(shè)置(來(lái)自 cmocean);
- Ⅲ 將圖另存為可編輯的 PDF;
- Ⅳ 繪制圖形的代碼可用,以便它可以在 sviewgui 之外重用和修改;
項(xiàng)目地址:https://github.com/SojiroFukuda/sview-gui
這個(gè)包用法超級(jí)簡(jiǎn)單,它只有一種方法:buildGUI()。此方法可以傳入零個(gè)或一個(gè)參數(shù)。您可以使用 csv 文件的文件路徑作為參數(shù),或者使用 pandas 的DataFrame對(duì)象作為參數(shù)。類似代碼寫(xiě)法如下:
# 第一種形式
import sviewgui.sview as sv
sv.buildGUI()
# 第二種形式
import sviewgui.sview as sv
FILE_PATH = "User/Documents/yourdata.csv"
sv.buildGUI(FILE_PATH)
# 第三種形式
import sviewgui.sview as sv
import pandas as pd
FILE_PATH = "User/Documents/yourdata.csv"
df = pd.read_csv(FILE_PATH)
sv.buildGUI(df)
上面代碼,只是幫助驅(qū)動(dòng)打開(kāi)這個(gè)GuI可視化界面。
最后強(qiáng)調(diào)一點(diǎn),由于這個(gè)庫(kù)是基于matplotlib可視化的,因此seaborn風(fēng)格同樣適用于這里,因?yàn)閟eaborn也是基于matplotlib可視化的。
sviewgui安裝
這個(gè)庫(kù)的依賴庫(kù)相當(dāng)多,因此大家直接采用下面這行代碼安裝sviewgui庫(kù)。
pip install sviewgui -i https://pypi.tuna.tsinghua.edu.cn/simple/ --ignore-installed
后面這個(gè)--ignore-installed,我最開(kāi)始是沒(méi)加的,但是報(bào)錯(cuò)了,大致錯(cuò)誤如下:
ERROR: Cannot uninstall 'certifi'. It is a distutils installed project and thus we cannot
accurately determine which files belong to it which would lead to only a partial uninstall.
直到加這個(gè)就行,不用管為什么,因?yàn)槲乙膊恢溃?/p>
sviewgui使用
上面我為大家介紹了3種打開(kāi)GUI圖形界面窗口的代碼,這里僅介紹下面這種方法:
import sviewgui.sview as sv
sv.buildGUI()
截圖如下:
當(dāng)你在命令行輸入上述代碼后,會(huì)驅(qū)動(dòng)后臺(tái)打開(kāi)這個(gè)圖形化界面窗口,初始化狀態(tài)大致是這樣的:
點(diǎn)擊上述select,可以選擇數(shù)據(jù)源:
然后我們可以點(diǎn)擊左側(cè)菜單欄,生成對(duì)應(yīng)的圖形。但是有一點(diǎn),貌似不支持中文?。?!
如果你覺(jué)得這里不足以完善你想要的圖形,可以復(fù)制圖形所對(duì)應(yīng)的Python代碼,簡(jiǎn)單修改即可。
然后,你拿著下面的代碼,簡(jiǎn)單修改,就可以生成漂亮的Matplotlib圖形了。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import cmocean
#2021/07/13 08:03:18
#- Import CSV as DataFrame ----------
FILE_PATH = 'C:/Users/Administrator/Desktop/plot.csv'
DATA = pd.read_csv(FILE_PATH)
#- Axes Setting ----------
fig, ax = plt.subplots()
ax.set_title( "x-y")
ax.set_xlabel( "x")
ax.set_ylabel( "x" )
ax.set_xlim(min(DATA['x'].replace([np.inf, -np.inf], np.nan ).dropna() ) - abs( min(DATA['x'].replace([np.inf, -np.inf], np.nan ).dropna() )/10), max(DATA['x'].replace([np.inf, -np.inf], np.nan).dropna()) + abs(max(DATA['x'].replace([np.inf, -np.inf], np.nan).dropna())/10) )
ax.set_ylim( min(DATA['x'].replace([np.inf, -np.inf], np.nan ).dropna() ) - abs( min(DATA['x'].replace([np.inf, -np.inf], np.nan ).dropna() )/10), max(DATA['x'].replace([np.inf, -np.inf], np.nan).dropna()) + abs(max(DATA['x'].replace([np.inf, -np.inf], np.nan).dropna())/10) )
#- PLOT ------------------
ax.plot( DATA["x"].replace([np.inf, -np.inf], np.nan), DATA["x"].replace([np.inf, -np.inf], np.nan), linewidth = 3.0, alpha =1.0, color = "#005AFF" )
plt.show()