不写一行代码,即可调用 Matplotlib 绘图!
介绍一款新的绘图神器:sviewgui。
sviewgui介绍
sviewgui是一个基于 PyQt 的 GUI,用于 csv 文件或 Pandas 的 DataFrame 的数据可视化。此 GUI 基于 matplotlib,您可以通过多种方式可视化您的 csv 文件。主要特点:
Ⅰ 散点图、线图、密度图、直方图和箱线图类型; Ⅱ 标记大小、线宽、直方图的 bin 数量、颜色图的设置(来自 cmocean); Ⅲ 将图另存为可编辑的 PDF; Ⅳ 绘制图形的代码可用,以便它可以在 sviewgui 之外重用和修改;
项目地址:https://github.com/SojiroFukuda/sview-gui
这个包用法超级简单,它只有一种方法:buildGUI()。此方法可以传入零个或一个参数。您可以使用 csv 文件的文件路径作为参数,或者使用 pandas 的DataFrame对象作为参数。类似代码写法如下:
# 第一种形式
import
# 第二种形式
import
# 第三种形式
import
import
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 sv
sv.buildGUI()
截图如下:
当你在命令行输入上述代码后,会驱动后台打开这个图形化界面窗口,初始化状态大致是这样的:
点击上述select,可以选择数据源:
然后我们可以点击左侧
菜单栏
,生成对应的图形。但是有一点,貌似不支持中文!!!如果你觉得这里不足以完善你想要的图形,可以复制图形所对应的Python代码,简单修改即可。
然后,你拿着下面的代码,简单修改,就可以生成漂亮的Matplotlib图形了。
import
import
import
import
import
#2021/07/13 08:03:18
#- Import CSV as DataFrame ----------
#- Axes Setting ----------
#- PLOT ------------------
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()
- EOF -
觉得本文对你有帮助?请分享给更多人
推荐关注「Python开发者」,提升Python技能
点赞和在看就是最大的支持❤️
阅读原文 最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。