欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Matplotlib系列_绘图注意事项

程序员文章站 2022-12-21 08:03:53
文章目录1. 图像在Retina屏幕中显示模糊2. 图像美感问题3. 中文显示乱码4. 全部载入上述设置时,注意载入顺序5. Jupyter notebook图像输出的三种方式一、内联模式:网页直接显示图像二、GUI模式:弹出GUI软件界面显示图像三、内联GUI显示:在网页内显示GUI版图像,结合前两种的好处6. pylab,自动载入numpy和Matplotlibimport matplotlib.pyplot as pltplt.plot([2,3,8,1,5,9])# plt.show()...

import matplotlib.pyplot as plt
plt.plot([2,3,8,1,5,9])
# plt.show()
[<matplotlib.lines.Line2D at 0x21ef61de978>]

Matplotlib系列_绘图注意事项

1. 图像在Retina屏幕中显示模糊

Mac电脑绘图,Retina屏下图像显示很模糊,解决方法,Jupyter-notebook绘图前先执行下面魔术命令:

%config InlineBackend.figure_format = 'retina'

2. 图像美感问题

默认的Matplotlib生成图像不太好看,可在头部载库代码中加一句配置代码修改其样式。

注意:修改样式代码应写在修改字体代码前,否则会覆盖字体设置导致中文出错。

plt.style.use('seaborn')
plt.plot([2,3,8,1,5,9])
[<matplotlib.lines.Line2D at 0x21ef628e8d0>]

Matplotlib系列_绘图注意事项

3. 中文显示乱码

Matplotlib默认不支持中文字符,因为默认设置字体是sans-serif英文字体不能显示汉字

解决方法:修改Matplotlib默认设置,加入中文字体支持。

注意:Ubuntu系统默认中文字体不识别,需要先安装下列一个中文字体以后才能使用

plt.rcParams['font.family'] = ['Arial Unicode MS', 'Microsoft Yahei', 'SimHei', 'sans-serif'] #  全局设置支持中文字体,默认 sans-serif
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
plt.plot([2,3,8,1,5,9])
plt.title('你好我是汉字标题')
<matplotlib.text.Text at 0x21ef62fe940>

Matplotlib系列_绘图注意事项

4. 全部载入上述设置时,注意载入顺序

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd


plt.style.use('seaborn')  # 更换图像样式
plt.rcParams['font.family'] = ['Arial Unicode MS', 'Microsoft Yahei', 'SimHei', 'sans-serif']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 如果字体为SimHei黑体,负号乱码,解决

# MAC电脑解决图片模糊魔术命令
# %config InlineBackend.figure_format = 'retina'

5. Jupyter notebook图像输出的三种方式

1. 内联显示:网页内显示图像,方便(默认)。
2. GUI显示:GUI软件界面显示图像,可操作强。
3. 内联GUI显示:在网页内显示GUI版图像,结合前两种的好处。
   注意:网页内显示GUI图像时,cell完成后应该终止图像动态,否则下面cell执行新图像时可能会绘制到上面
         cell的图像画布中,因为两个图像的父对象id相同。
4.切换输出模式时,一般需要重启内核

一、内联模式:网页直接显示图像

Jupyter默认显示模式

# 设置的话使用下面代码
%matplotlib inline

plt.plot([2,3,8,1,5,9])
[<matplotlib.lines.Line2D at 0x21ef6667e80>]

Matplotlib系列_绘图注意事项

二、GUI模式:弹出GUI软件界面显示图像

%matplotlib qt5

plt.plot([2,3,8,1,5,9])
[<matplotlib.lines.Line2D at 0x21ef9084ba8>]

Matplotlib系列_绘图注意事项

三、内联GUI显示:在网页内显示GUI版图像,结合前两种的好处

%matplotlib notebook

plt.plot([2,3,8,1,5,9])
Warning: Cannot change to a different GUI toolkit: notebook. Using qt5 instead.
[<matplotlib.lines.Line2D at 0x21ef91073c8>]

notebook模式,下面cell的图会画到上面底图中,终止上面图像就会正常

plt.plot([10,15,8,5,2])
plt.plot([-5, 0,5,10,15])
[<matplotlib.lines.Line2D at 0x21ef949c780>]

6. pylab,自动载入numpy和Matplotlib

了解即可,不建议使用,下面方法都会自动载入numpyMatplotlib库,直接使用

命令行打开:ipython --pylab
命令行打开:jupyter notebook --pylab=inline
Python原生环境、Pycharm或Spyder等集成模式下,载入库:from pylab import *

旧版写法,别人写你能看懂

你不要这么写

下面魔术命令自动载入NumpyMatplotlib

%pylab inline
Populating the interactive namespace from numpy and matplotlib
np.array([1,2,3,4,5])
array([1, 2, 3, 4, 5])
plt.plot([10,15,8,5,2])
[<matplotlib.lines.Line2D at 0x21ef92f22b0>]

Matplotlib系列_绘图注意事项

IPython环境可以用下面代码载入pylab

Python原生环境、Pycharm或Spyder集成模式下:

from pylab import *   

或者直接将交互终端设置为IPython即可

本文地址:https://blog.csdn.net/weixin_43593330/article/details/107330042