如果你也是一名数据科学家,你一定明白,无论你对数据的理解和研究有多深入,你最终对结果的判断都将基于你可视化成果。更糟的是,对于随机观察者来说,这些图表不仅需要具有信息量和直观性,还要具有潮流感。
在我看来,python matplotlib和seaborn样式有些乏味,而且被过度使用。有时,它们甚至会让人觉得作者没有投入太多时间或精力。为了给绘图增添亮点,我发现了6个Python库,它们可以在常规的线图/散点图、直方图和其他基本可视化图上增加色彩。每个库都有对应的github repo链接!
首先,生成一些综合数据。使用每个库制作4个子图,这样就可以在同类数据上对它们进行比较。```
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
‘’‘Generating points to create a scatter plot’‘’
def scatter():
x = np.random.random(100)
y = x-np.random.random(100)
z = np.random.randint(0,4,100)
df = pd.DataFrame({‘X’:x, ‘Y’: y, ‘Z’😒})
return df
‘’‘Generating points to create a line plot’‘’
def line():
x = np.arange(0,10,0.1)
y_1 = np.sin(x)
y_2 = np.sin(x+5)
y_3 = np.sin(x+10)
y_4 = np.sin(x+15)
y_5 = np.sin(x+20)
df = pd.DataFrame({‘X’:x,‘y_1’:y_1, ‘y_2’:y_2,
‘y_3’:y_3, ‘y_4’:y_4, ‘y_5’:y_5})
return df
‘’‘Sampling data from several distributions’‘’
def hist():
x_1 = np.random.normal(1,0.1,1000)
x_2 = np.random.gamma(1,0.25,1000)
x_3 = np.random.normal(0.4, 0.1,1000)
x_4 = np.random.normal(-0.1, 0.3,1000)
df = pd.DataFrame({‘X_1’: x_1, ‘X_2’:x_2, ‘X_3’: x_3, ‘X_4’:x_4})
return df
**注意:**没有特定的颜色或图案,只是在同一组绘画中应用一种风格。
1\. Aquarel
-----------
Aquarel库\[1\]提供**11 种**不同的样式,包括深色和浅色样式,可使用**pip** 安装:
pip install aquarel
可以像下面这样使用上下文管理器来使用这些主题:
with load_theme(“arctic_light”):
fig, ax = plt.subplots(ncols=2, nrows=2, figsize=(16,9))
df = scatter()
f= ax[0,0].scatter(df.X,df.Y, c=df.Z, s=50)
ax[0,0].set_xlabel(‘X data’)
ax[0,0].set_ylabel(‘Y data’)
handles, labels = f.legend_elements(prop=“colors”, alpha=0.6)
legend2 = ax[0,0].legend(handles, labels, loc=“lower right”)
df=line()
df.plot(x=‘X’, ax=ax[0,1])
df=hist()
sns.kdeplot(df, fill=True, ax=ax[1,0])
ax[1,0].set_xlabel(‘Value’)
sns.kdeplot(df, x=“X_1”, y=“X_2”, fill=True, ax=ax[1,1])
sns.kdeplot(df, x=“X_3”, y=“X_4”,fill=True, ax=ax[1,1])
ax[1,1].set_xlabel(‘Dist 1’)
ax[1,1].set_ylabel(‘Dist 2’)
plt.suptitle(‘Aquarel\narctic_light’, fontsize=24)
plt.savefig(‘arctic_light.jpg’)
plt.show()
或者,你也可以直接使用
from aquarel import load_theme
theme = load_theme(“arctic_light”)
theme.apply()
… plotting code here
theme.apply_transforms()
![](https://mmbiz.qpic.cn/mmbiz_jpg/gX9JE5tiaI78rS0Jf8zlB8c1ImUuzQSzChaPUfbdV4qQ7U6tONpMhdybAO4sPfiaekectxCPUvVNodyxTKmicoABw/640?wx_fmt=jpeg&from=appmsg)
![](https://mmbiz.qpic.cn/mmbiz_jpg/gX9JE5tiaI78rS0Jf8zlB8c1ImUuzQSzCWMgJQeFl3an2P287kervKBPXh7BKv7TKialWY6v2MgnomJ7dwYBOWAA/640?wx_fmt=jpeg&from=appmsg)
2\. Rosé Pine
-------------
第二个repo\[2\] 我非常喜欢,它不是一个库,而是一组主题,你需要下载这些主题,然后指定 matplotlib 的路径:
plt.style.use(‘./themes/rose-pine-moon.mplstyle’)
之后,只需要按照相同的绘图步骤进行即可。这个软件包的颜色非常温和,同时对比度也很高。
![](https://mmbiz.qpic.cn/mmbiz_jpg/gX9JE5tiaI78rS0Jf8zlB8c1ImUuzQSzCrFnq8utG4Mhlwibc2DBt7HCc8lRWZiarL1Zy8wib4dpncEcR7iaVjPJCug/640?wx_fmt=jpeg&from=appmsg)
3\. Catppuccin
--------------
需要使用**pip** 安装Catppuccin库\[3\]。它包括 4 种不同的风格和不同的暗度。
matplotlib.style.use(“mocha”)
![](https://mmbiz.qpic.cn/mmbiz_png/gX9JE5tiaI78rS0Jf8zlB8c1ImUuzQSzCF9T9evLT6IoJjBItbgaQWDXFZO1y8OPBHtPRroCgkmIiaM5sVqD4EDw/640?wx_fmt=png&from=appmsg)
Catppuccin软件包还提供了一个有趣的功能,可以将不同的样式表进行混合。可以尝试将基本的seaborn-v0\_8-dark和mocha样式表结合起来。
![](https://mmbiz.qpic.cn/mmbiz_png/gX9JE5tiaI78rS0Jf8zlB8c1ImUuzQSzCz2ibczt8UPhmHXt4mbU2gxuVt6ibkFoxXrjbWoe4tHqQQS039mNJMIwA/640?wx_fmt=png&from=appmsg)
Catppuccin混合主题
4\. mplcyberpunk
----------------
下一个库mplcyberpunk\[4\]非常有名,每个人都钟爱赛博朋克,这款软件不仅能够提供恰到好处的颜色和背景,还能为图片添加发光效果,绝对让人惊艳!
![](https://mmbiz.qpic.cn/mmbiz_png/gX9JE5tiaI78rS0Jf8zlB8c1ImUuzQSzCm79NgMxlK9rhrlBFDvfTDDo8lEGjZQtaY4gaUUESHyf0hl4JbD3fTg/640?wx_fmt=png&from=appmsg)
import matplotlib.pyplot as plt
import mplcyberpunk
plt.style.use(“cyberpunk”)
…
mplcyberpunk.add_glow_effects()
plt.show()
![](https://mmbiz.qpic.cn/mmbiz_png/gX9JE5tiaI78rS0Jf8zlB8c1ImUuzQSzCJGhdt4IEA2QfA4U4GJpsv2dRbY3QmFzu9kibKxCwjUHrtZE2PhYckVw/640?wx_fmt=png&from=appmsg)
fig, ax = plt.subplots()
…
mplcyberpunk.make_lines_glow(ax)
![](https://mmbiz.qpic.cn/mmbiz_png/gX9JE5tiaI78rS0Jf8zlB8c1ImUuzQSzCVOV95oiaqHovbjMUctvwoRTiaYWACKPxJoWFyv5lezYGOmvWhr8F3hdw/640?wx_fmt=png&from=appmsg)
5\. matplotx
------------
matplotx\[5\]是matplotlib的另一个扩展包,可以通过pip像之前的扩展包一样安装。它提供了20种不同的主题,可用于科学研究、投影或其他任何用途,因为这些风格既有严谨的特点,也有非正式和时尚的风格。
![](https://mmbiz.qpic.cn/mmbiz_png/gX9JE5tiaI78rS0Jf8zlB8c1ImUuzQSzCB27mNhD0BA6iavbJWWcREhG7iaibbLnmXUcT24rcM190rlsBVTUyNK4Kg/640?wx_fmt=png&from=appmsg)
![](https://mmbiz.qpic.cn/mmbiz_png/gX9JE5tiaI78rS0Jf8zlB8c1ImUuzQSzCklGUvoWP4CYFm0tysSEqMhLEvNWUibh2pkq8zSvmdiaBOHiaZWfPLic2Ew/640?wx_fmt=png&from=appmsg)
6\. GruvBox
-----------
今天的最后一个是GruvBox\[6\]。,它不是一个真正的库,而是一个文件,适用时需要上传它:
matplotlib.style.use(“./gruvbox.mplstyle”)
题外话
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。