在Docker Container中使用Matplotlib.pyplot 您所在的位置:网站首页 python没有matplotlibpyplot 在Docker Container中使用Matplotlib.pyplot

在Docker Container中使用Matplotlib.pyplot

2024-07-14 08:51| 来源: 网络整理| 查看: 265

在Docker Container中使用Matplotlib.pyplot

Matplotlib是一个Python作图库,可绘制出具有各种格式的高品质图片。它可以绘制各种类型的图表,如线形图、散点图、柱状图、等高线图、南丁格尔玫瑰图等。

阅读更多:Matplotlib 教程

Matplotlib的安装

使用以下命令可以快速安装Matplotlib:

pip install matplotlib

如果是在Docker container中使用Matplotlib,需要在Dockerfile中添加Matplotlib的安装指令,如下所示:

FROM python:3.6 RUN pip install matplotlib ... Matplotlib.pyplot

Matplotlib.pyplot是一个子包,其中包含一些函数,可以像Matlab一样创建绘图区(figure)、绘制线(lines)、调整轴(axis)等。这些函数可用于创建各种类型的图,如散点图、条形图、直方图等。

使用以下语句导入Matplotlib.pyplot:

import matplotlib.pyplot as plt Matplotlib.pyplot图例及样式

Matplotlib.pyplot图例是可视化上的一种方式,用于标识数据系列或分类变量。

例如,对于折线图,可以使用以下代码创建图例:

import matplotlib.pyplot as plt x = [1, 2, 3, 4] y = [10, 20, 25, 30] plt.plot(x, y, label='Line 1') plt.legend() plt.show()

此代码将创建一个带有标签’Line 1’的图例。

此外,Matplotlib运行时默认使用黑白样式,可以使用以下代码更改样式:

import matplotlib.pyplot as plt plt.style.use('ggplot') ...

此命令将Matplotlib的样式更改为ggplot样式。

在Docker Container中使用Matplotlib.pyplot

在Docker container中使用Matplotlib.pyplot时,可能会出现以下错误:

_tkinter.TclError: no display name and no $DISPLAY environment variable

这是由于Docker container没有默认的GUI界面导致的错误。为了解决这个问题,可以使用以下几种方法:

1.使用Agg后端

Matplotlib有多个绘图后端(backends),而默认后端是Tkinter,需要图形界面(GUI)的支持,因此,可以使用不需要GUI的可矢量模式后端(Agg)。只需要在python脚本开头添加以下两行代码:

import matplotlib matplotlib.use('Agg') 2.设置DISPLAY

设置DISPLAY变量,让Matplotlib绘图后端能够将输出显示在特定的图形界面上,例如:

docker run --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix

此命令将容器的DISPLAY变量设置为宿主机的DISPLAY变量,从而解决了GUI问题。

3.使用Matplotlib的nbagg

Matplotlib的nbagg将Matplotlib图形嵌入到Jupyter Notebook中,使得在Docker container中也能像在本地一样使用图形。

docker run -p 8888:8888 -e PASSWORD=12345 jupyter/notebook start-notebook.sh --NotebookApp.token='' --NotebookApp.password='sha1:f7b75c8d6c88:39a6e1f69fa2f771cf6aefebe89e90d201ee1a5e' --NotebookApp.iopub_data_rate_limit=1e10 --NotebookApp.allow_origin='*' --NotebookApp.disable_check_xsrf=True --NotebookApp.trust_xheaders=True --NotebookApp.base_url='/%E4%BA%91%E8%AE%A1%E7%AE%97/%E4%BA%91%E9%97%B4%E9%87%8F%E4%B8%8A%E8%A1%A8%E9%9D%A2/' --NotebookApp.open_browser=False --NotebookApp.notebook_dir=/home/Python + /bin/bash

此命令将启动一个Jupyter Notebook服务器,其中安装了Matplotlib并使用nbagg作为后端,容器的端口8888映射到主机的8888端口,可以使用浏览器访问该端口来访问Notebook,并在Notebook中使用Matplotlib.pyplot。

总结

Matplotlib.pyplot是一个强大的Python绘图库,可以轻松创建各种类型的图表。在Docker container中使用Matplotlib.pyplot可能会出现图形界面的问题,但是可以使用Agg后端、设置DISPLAY变量或使用nbagg来解决此问题。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有