作者:阳哥
来源:Python数据之道
大家好,我是阳哥。
大家知道,在利用Python进行数据可视化过程中,基本上是很难绕开 Matplotlib 的,因为 不少其他的可视化库多多少少是建立在 Matplotlib 的基础上的。
![edbb2e11c368ce39092355a86536bf33.png](https://i-blog.csdnimg.cn/blog_migrate/6bdfb96d08fa8365d5f9f02df772bc14.png)
01写在前面
Matplotlib 作为一个基础必备且功能强大的绘图库,很多其他功能库的开发也有不少是建立在 Matplotlib 的基础上的。
因此确实有必要对 Matplotlib 有所了解。
前不久,我跟大家分享了一本不错的书 Scientific Visualization: Python + Matplotlib
这本书的内容还是挺不错的。
今天咱们来学习其中的一个案例,用 Matplotlib 绘制一个 LOGO,效果如下:
![8e32a1b04d53c5131689e517bda593ef.png](https://i-blog.csdnimg.cn/blog_migrate/261509fede16aaf03aa3df7858f9080f.png)
严格来说,这并不完全是一个 LOGO,可以称之为 “文字轮廓图”,这个效果我觉得还是蛮不错的。
下面咱们来看下这个是怎么做出来的。
02绘图过程
这个图的绘制,只需要用到基础的 numpy
和 matplotlib
库,首先引入这些 Python 库:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patheffects import Stroke, Normal
# # Jupyter Notebook 中需要添加下面的内容
# %matplotlib inline
由于需要显示中文,这里还需要设置下字体的显示,如下:
# 解决 matplotlib 显示中文问题
plt.rcParams['font.sans-serif'] = ['Alibaba PuHuiTi'] # 指定默认字体
# 解决保存图像是负号 '-' 显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False
需要注意的是,我这里设置的字体是
Alibaba PuHuiTi
,你的电脑上不一定有这个字体,需要替换成自己电脑上已有的中文字体。
完整的代码如下:
fig = plt.figure(figsize=(10, 3))
ax = fig.add_axes([0, 0, 1, 1], frameon=False)
ax.set_xticks([])
ax.set_yticks([])
family = "Alibaba PuHuiTi"
size = 80
cmap = plt.cm.Blues_r
text = "Python数据之道"
for x in np.linspace(0, 1, 20):
lw, color = x * 225, cmap(1 - x)
t = ax.text(
0.5,
0.45,
text,
size=size,
color="none",
weight="bold",
va="center",
ha="center",
family=family,
zorder=-lw,
)
t.set_path_effects([Stroke(linewidth=lw + 1, foreground="black")])
t = ax.text(
0.5,
0.45,
text,
size=size,
color='black', # 中心文字颜色
weight="bold",
va="center",
ha="center",
family=family,
zorder=-lw + 1,
)
t.set_path_effects([Stroke(linewidth=lw, foreground=color)])
t = ax.text(
1.0,
0.01,
"http://liyangbit.com ",
va="bottom",
ha="right",
size=10,
color="white",
family="Alibaba PuHuiTi",
alpha=0.50,
)
# plt.savefig("./01Practice/Matplotlib/text-outline.pdf")
# plt.savefig("text-outline.pdf")
plt.savefig("text-outline.png")
plt.show()
当然,也可以自行调整字体大小,修改显示颜色等,比如下面的效果:
![6c21ac88cc005aab385d6499fbe8bda9.png](https://i-blog.csdnimg.cn/blog_migrate/d380b3e47f96bd7afa456c6505b407b3.png)
怎么样,效果还不错吧,自己动手来试试吧。
相关阅读
大家读完顺手点下右下角的 “在看” ,就是最大的鼓励和支持了。