程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

一款神器的 Python 工具,不寫一行代碼,就可以調用 Matplotlib 繪圖

編輯:Python

介紹一款新的繪圖神器:sviewgui,它是一個基於 PyQt 的 GUI,用於 csv 文件或 Pandas 的 DataFrame 的數據可視化。喜歡本文記得收藏、關注、點贊。

注:技術交流、資料獲取,文末見

此 GUI 基於 matplotlib,您可以通過多種方式可視化您的 csv 文件。主要特點:

  • Ⅰ 散點圖、線圖、密度圖、直方圖和箱線圖類型;

  • Ⅱ 標記大小、線寬、直方圖的 bin 數量、顏色圖的設置(來自 cmocean);

  • Ⅲ 將圖另存為可編輯的 PDF;

  • Ⅳ 繪制圖形的代碼可用,以便它可以在 sviewgui 之外重用和修改;

項目地址:https://github.com/SojiroFukuda/sview-gui

這個包用法超級簡單,它只有一種方法:buildGUI()。此方法可以傳入零個或一個參數。您可以使用 csv 文件的文件路徑作為參數,或者使用 pandas 的DataFrame對象作為參數。類似代碼寫法如下:

# 第一種形式
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)

上面代碼,只是幫助驅動打開這個GuI可視化界面。

最後強調一點,由於這個庫是基於matplotlib可視化的,因此seaborn風格同樣適用於這裡,因為seaborn也是基於matplotlib可視化的。

sviewgui安裝

這個庫的依賴庫相當多,因此大家直接采用下面這行代碼安裝sviewgui庫。

pip install sviewgui -i https://pypi.tuna.tsinghua.edu.cn/simple/ --ignore-installed

後面這個--ignore-installed,我最開始是沒加的,但是報錯了,大致錯誤如下:

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.

直到加這個就行,不用管為什麼,因為我也不知道!

sviewgui使用

上面我為大家介紹了3種打開GUI圖形界面窗口的代碼,這裡僅介紹下面這種方法:

import sviewgui.sview as svsv.buildGUI()

截圖如下:

當你在命令行輸入上述代碼後,會驅動後台打開這個圖形化界面窗口,初始化狀態大致是這樣的:

點擊上述select,可以選擇數據源:

然後我們可以點擊左側菜單欄,生成對應的圖形。但是有一點,貌似不支持中文!!!

如果你覺得這裡不足以完善你想要的圖形,可以復制圖形所對應的Python代碼,簡單修改即可。

然後,你拿著下面的代碼,簡單修改,就可以生成漂亮的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()

技術交流

目前開通了技術交流群,群友已超過3000人,添加時最好的備注方式為:來源+興趣方向,方便找到志同道合的朋友

方式①、發送如下圖片至微信,長按識別,後台回復:加群;
方式②、添加微信號:dkl88191,備注:來自CSDN
方式③、微信搜索公眾號:Python學習與數據挖掘,後台回復:加群


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved