Matplotlib使用

本文记录了使用Matplotlib进行数据分析报告时遇到的问题及解决方案,包括更换图表主题、中文显示、提高图片分辨率、调整字体大小、旋转x轴标签、消除图片空白以及丰富颜色等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间领导要求出一份数据分析报告,出图就选用了matplotlib。简单记录一些使用过程用到的一些方法、技巧以及问题和解决方法。

一、背景单调/换主题

默认背景是纯白色的,这里有几个方法可以配置背景颜色(主题
方法一
使用matplotlib.pyplot自带的主题

from matplotlib import pyplot as plt
# 查看可用主题
print(plt.style.available)
# 设置主题
plt.style.use('seaborn-darkgrid')

方法二
使用seaborn库。这个库是在matplotlib之上进行了进一步的封装。

import seaborn as sns

sns.set_style("dark")

可用主题包括:darkgrid whitegrid dark white ticks

二、中文显示方框/换字体

这里是因为没有设置字体的原因。同样有两种方法,一种是将系统字体复制到matplotlib字体库中,这种方法在某具体系统上是一劳永逸的解决办法,但是一旦代码转移到别的系统,问题仍然存在,所以主要说第二个方法。

plt.rcParams['font.sans-serif'] = ['SimHei']

三、图片不清楚/设定分辨率

有时候会想要更加精细的图片,因为要贴到报告中嘛。而且当图片内容比较丰富(拥挤)的时候,分辨率低了根本看不清。

# plt.show()的时候的图像分辨率
plt.rcParams['figure.dpi'] = 300
# plt.save(‘xxx’) 保存下来的图片的分辨率
plt.rcParams['savefig.dpi'] = 300

四、字太小/设定字体

设定字体大小的方式跟上面一样

# 设定字体大小为12
plt.rcParams['font.size'] = 12
# 也可以用更新的方式来设定
plt.rcParams.update({'font.size': 12})

五、x轴标签太拥挤/旋转x轴标签

有时候x轴标签不是数字,而是我们需要的其他字符串,而字符串过长的话,会出现重叠的情况。一个常用的解决方法就是旋转x轴标签

matplotlib.pyplot.xticks(ticks=None,labels=None,[rotation=ine])

这里的rotation参数就是用来控制旋转的。旋转方向是逆时针。
重叠的x轴标签

# x轴标签旋转15°
plt.xticks(rotation=15)

旋转15度

六、图片左右空白/设置x轴

当数据比较多的时候会现象出的一个情况就是,x轴无法被填满,即x轴数据无法完全填充x轴,导致图左右两边留白,影响美观。
留白
上图有两个问题:x轴拥挤;左右留白。
解决第一个问题,除了上面提到的旋转之外,还可以通过手动设置figsize的方式,拉长x轴,空间就够了,不会拥挤了。
解决第二个问题,可以通过手动设置x轴长度的方式,限定x轴长度,使数据能够铺满。

# 手动设置图片大小
fig.figure(figsize=(10, 5))
# 设置x轴标签, 不设置的话会隐藏一部分标签, 区别可以自己体验
fig.xticks(np.arange(0, 50))
# 设置x轴范围, 根据自己需求灵活设置
fig.xlim([-1, len(np.arange(0,50))])

在这里插入图片描述

七、颜色不够丰富/可使用的颜色

当我们需要画一些花里胡哨的图的时候,可能会用到多种颜色,我们常用的color参数设置大概为

参数颜色
bblue
ggreen
rred
ccyan
mmegenta
yyellow
kblack
wwhite

一共8种颜色可供选择。除此之外,还要两类颜色可供使用。一类是‘tableau palette’,一类是‘css colors’。
在这里插入图片描述
以上三类颜色,可以通过以下代码查看:

> import matplotlib.colors as mcolors
> mcolors.BASE_COLORS
> # output
> mcolors.TABLEUA_COLORS
> # output
> mcolors.CSS4_COLORS
> # output

然后我们可以随机抽取,或者直接指定都行。

以上,后面有再补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值