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':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
注意:没有特定的颜色或图案,只是在同一组绘画中应用一种风格。
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()
第二个repo[2] 我非常喜欢,它不是一个库,而是一组主题,你需要下载这些主题,然后指定 matplotlib 的路径:
plt.style.use('./themes/rose-pine-moon.mplstyle')
之后,只需要按照相同的绘图步骤进行即可。这个软件包的颜色非常温和,同时对比度也很高。
需要使用pip 安装Catppuccin库[3]。它包括 4 种不同的风格和不同的暗度。
matplotlib.style.use("mocha")
Catppuccin软件包还提供了一个有趣的功能,可以将不同的样式表进行混合。可以尝试将基本的seaborn-v0_8-dark和mocha样式表结合起来。Catppuccin混合主题
下一个库mplcyberpunk[4]非常有名,每个人都钟爱赛博朋克,这款软件不仅能够提供恰到好处的颜色和背景,还能为图片添加发光效果,绝对让人惊艳!
import matplotlib.pyplot as plt
import mplcyberpunk
plt.style.use("cyberpunk")
...
mplcyberpunk.add_glow_effects()
plt.show()
fig, ax = plt.subplots()
...
mplcyberpunk.make_lines_glow(ax)
matplotx[5]是matplotlib的另一个扩展包,可以通过pip像之前的扩展包一样安装。它提供了20种不同的主题,可用于科学研究、投影或其他任何用途,因为这些风格既有严谨的特点,也有非正式和时尚的风格。
今天的最后一个是GruvBox[6]。,它不是一个真正的库,而是一个文件,适用时需要上传它:
matplotlib.style.use("./gruvbox.mplstyle")
尽管这个软件仓库中只有一个主题,但我非常喜欢它的字体、线条和背景颜色的搭配!
希望以上的内容能够帮助到你,持续关注云朵君,我们一起学习机器学习与挖掘~
Aquarel库: https://github.com/lgienapp/aquarel
[2]repo: https://github.com/h4pZ/rose-pine-matplotlib
[3]Catppuccin库: https://github.com/catppuccin/matplotlib
[4]mplcyberpunk: https://github.com/dhaitz/mplcyberpunk
[5]matplotx: https://github.com/nschloe/matplotx
[6]GruvBox: https://github.com/thriveth/gruvbox-mpl/tree/master
长按👇关注- 数据STUDIO -设为星标,干货速递