Matplotlib は Python 言語の 2D 描画ライブラリであり、さまざまなプラットフォームをサポートしており、さまざまなプロフェッショナルな画像を簡単に描画するのに十分強力です。この記事は、Python 描画ライブラリ Matplotlib の入門チュートリアルです。興味のある友達は一緒に学ぶことができます
実行環境
これは Python 言語ソフトウェア パッケージであるため、マシンに Python 言語をインストールする必要があります。の最初の環境。これについては、インターネットで入手方法を自分で調べてください。
Matplotlib のインストール方法については、こちらを参照してください: Matplotlib のインストール。
著者は pip 経由でインストールすることを推奨しています。具体的な方法は次のとおりです:
sudo pip3 install matplotlib
この記事のソース コードとテスト データはここから入手できます: matplotlib_tutorial
この記事のコード例は次のとおりです。別の Python ライブラリ NumPy を使用します。読者には、まず NumPy に慣れておくことをお勧めします。私は以前に NumPy に関する基本的なチュートリアルも書きました。「Python Machine Learning Library NumPy Tutorial」を参照してください。
この記事のコードは次の環境でテストされました:
-
Apple OS
はじめに - Matplotlib は以下を含むさまざまな環境に適しています:
- Python スクリプト
IPython シェル Jupyter ノートブック
Web アプリケーション サーバー- ユーザー グラフィカル インターフェイス ツールキット
- Matplotlib を使用すると、ヒストグラム、スペクトログラム、棒グラフ、散布図などのさまざまなタイプの画像を簡単に生成できます。そして、非常に簡単にカスタマイズできます。
- 入門コード例
- Matplotlib がどのようなものかを感じてもらうために、最初に最も単純なコード例を見てみましょう:
# test.py import matplotlib.pyplot as plt import numpy as np data = np.arange(100, 201) plt.plot(data) plt.show()このコードのメインロジックはわずか 3 行ですが、以下に示すように、非常に直感的な線形グラフが描画されます:
この折れ線グラフと対比して、3 行のコードのロジックを説明してみましょう:
Through np.arange(100 , 201)[100, 200] の間の整数配列を生成します。その値は次のとおりです: [100, 101, 102, …, 200]
via matplotlib.pyplot
それを描画します。明らかに、プロットされた値はグラフの縦軸 (y 軸) に対応します。また、matplotlib 自体がグラフの横座標 (x 軸) を [0, 100] に設定します。これは、plt.show()
を通じてちょうど 100 個の値があるためです。このグラフを表示するには出てきてください
python3 test.py
np.arange(100, 201)
生成一个[100, 200]之间的整数数组,它的值是:[100, 101, 102, … , 200]
通过matplotlib.pyplot
将其绘制出来。很显然,绘制出来的值对应了图中的纵坐标(y轴)。而matplotlib本身为我们设置了图形的横坐标(x轴):[0, 100],因为我们刚好有100个数值
通过plt.show()
将这个图形显示出来
这段代码非常的简单,运行起来也是一样。如果你已经有了本文的运行环境,将上面的代码保存到一个文本文件中(或者通过Github获取本文的源码),然后通过下面的命令就可以在你自己的电脑上看到上面的图形了:
# figure.py import matplotlib.pyplot as plt import numpy as np data = np.arange(100, 201) plt.plot(data) data2 = np.arange(200, 301) plt.figure() plt.plot(data2) plt.show()
注1:后面的教程中,我们会逐步讲解如何定制图中的每一个细节。例如:坐标轴,图形,着色,线条样式,等等。
注2:如果没有必要,下文的截图会去掉图形外侧的边框,只保留图形主体。
一次绘制多个图形
有些时候,我们可能希望一次绘制多个图形,例如:两组数据的对比,或者一组数据的不同展示方式等。
可以通过下面的方法创建多个图形:
多个figure
可以简单的理解为一个figure
就是一个图形窗口。matplotlib.pyplot
会有一个默认的figure
,我们也可以通过plt.figure()
创建更多个。如下面的代码所示:
# subplot.py import matplotlib.pyplot as plt import numpy as np data = np.arange(100, 201) plt.subplot(2, 1, 1) plt.plot(data) data2 = np.arange(200, 301) plt.subplot(2, 1, 2) plt.plot(data2) plt.show()
这段代码绘制了两个窗口的图形,它们各自是一个不同区间的线形图,如下所示:
注:初始状态这两个窗口是完全重合的。
多个subplot
有些情况下,我们是希望在同一个窗口显示多个图形。此时就这可以用多个subplot。下面是一段代码示例:
plt.subplot(2, 1, 1)
这段代码中,除了subplot
函数之外都是我们熟悉的内容。subplot
注 1: 次のチュートリアルでは、画像のあらゆる詳細をカスタマイズする方法を段階的に説明します。例: 軸、グラフィックス、カラーリング、線のスタイルなど。
注2: 必要がない場合、以下のスクリーンショットはグラフィックの外側の境界線を削除し、グラフィックの本体のみを残します。
一度に複数のグラフを描画する
🎜🎜🎜 2 セットのデータの比較や、1 セットのデータの異なる表示方法など、一度に複数のグラフを描画したい場合があります。 🎜🎜次の方法で複数の Figure を作成できます: 🎜🎜🎜🎜複数の Figure🎜🎜🎜🎜 は、figure
がグラフィックス ウィンドウであると単純に理解できます。 matplotlib.pyplot
にはデフォルトの figure
があり、plt.figure()
を通じてさらに作成することもできます。次のコードに示すように: 🎜🎜🎜plt.subplot(2, 1, 2)🎜🎜🎜 このコードは、以下に示すように、それぞれが異なる間隔の折れ線グラフである 2 つのウィンドウのグラフィックスを描画します: 🎜🎜

import matplotlib.pyplot as plt import numpy as np data = np.arange(100, 201) plt.subplot(211) plt.plot(data) data2 = np.arange(200, 301) plt.subplot(212) plt.plot(data2) plt.show()🎜🎜🎜 このコードでは、
subplot
関数を除いて、すべておなじみの内容です。 subplot
関数の最初の 2 つのパラメータは、サブプロットの数を指定します。つまり、現在のグラフを行列の形式で分割します。2 つの整数は、行列の行数と列数をそれぞれ指定します。 。そして 3 番目のパラメーターは、行列内のインデックスを参照します。 🎜🎜つまり、次のコード行は、2 行 1 列のサブプロットの最初のサブプロットを指します。 🎜🎜🎜りー🎜🎜下面这行代码指的是:2行1列subplot中的第2个subplot。
plt.subplot(2, 1, 2)
所以这段代码的结果是这个样子:
subplot
函数的参数不仅仅支持上面这种形式,还可以将三个整数(10之内的)合并一个整数。例如:2, 1, 1
可以写成211
,2, 1, 2
可以写成212
。
因此,下面这段代码的结果是一样的:
import matplotlib.pyplot as plt import numpy as np data = np.arange(100, 201) plt.subplot(211) plt.plot(data) data2 = np.arange(200, 301) plt.subplot(212) plt.plot(data2) plt.show()
subplot
函数的详细说明参见这里:matplotlib.pyplot.subplot
常用图形示例
Matplotlib可以生成非常多的图形式样,多到令人惊叹的地步。大家可以在这里:Matplotlib Gallery 感受一下。
本文作为第一次的入门教程,我们先来看看最常用的一些图形的绘制。
线性图
前面的例子中,线性图的横轴的点都是自动生成的,而我们很可能希望主动设置它。另外,线条我们可能也希望对其进行定制。看一下下面这个例子:
# plot.py import matplotlib.pyplot as plt plt.plot([1, 2, 3], [3, 6, 9], '-r') plt.plot([1, 2, 3], [2, 4, 9], ':g') plt.show()
这段代码可以让我们得到这样的图形:
这段代码说明如下:
plot
函数的第一个数组是横轴的值,第二个数组是纵轴的值,所以它们一个是直线,一个是折线; 最后一个参数是由两个字符构成的,分别是线条的样式和颜色。前者是红色的直线,后者是绿色的点线。关于样式和颜色的说明请参见plot
函数的API Doc:matplotlib.pyplot.plot
散点图
scatter
函数用来绘制散点图。同样,这个函数也需要两组配对的数据指定x和y轴的坐标。下面是一段代码示例:
# scatter.py import matplotlib.pyplot as plt import numpy as np N = 20 plt.scatter(np.random.rand(N) * 100, np.random.rand(N) * 100, c='r', s=100, alpha=0.5) plt.scatter(np.random.rand(N) * 100, np.random.rand(N) * 100, c='g', s=200, alpha=0.5) plt.scatter(np.random.rand(N) * 100, np.random.rand(N) * 100, c='b', s=300, alpha=0.5) plt.show()
这段代码说明如下:
这幅图包含了三组数据,每组数据都包含了20个随机坐标的位置 参数c
表示点的颜色,s
是点的大小,alpha
是透明度
这段代码绘制的图形如下所示:
scatter
函数的详细说明参见这里:matplotlib.pyplot.scatter
饼状图
pie
函数用来绘制饼状图。饼状图通常用来表达集合中各个部分的百分比。
# pie.py import matplotlib.pyplot as plt import numpy as np labels = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] data = np.random.rand(7) * 100 plt.pie(data, labels=labels, autopct='%1.1f%%') plt.axis('equal') plt.legend() plt.show()
这段代码说明如下:
data
是一组包含7个数据的随机数值 图中的标签通过labels
来指定 autopct
指定了数值的精度格式 plt.axis('equal')
设置了坐标轴大小一致 plt.legend()
指明要绘制图例(见下图的右上角)
这段代码输出的图形如下所示:
pie
函数的详细说明参见这里:matplotlib.pyplot.pie
条形图
bar
函数用来绘制条形图。条形图常常用来描述一组数据的对比情况,例如:一周七天,每天的城市车流量。
下面是一个代码示例:
# bar.py import matplotlib.pyplot as plt import numpy as np N = 7 x = np.arange(N) data = np.random.randint(low=0, high=100, size=N) colors = np.random.rand(N * 3).reshape(N, -1) labels = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] plt.title("Weekday Data") plt.bar(x, data, alpha=0.8, color=colors, tick_label=labels) plt.show()
这段代码说明如下:
这幅图展示了一组包含7个随机数值的结果,每个数值是[0, 100]的随机数 它们的颜色也是通过随机数生成的。np.random.rand(N * 3).reshape(N, -1)
表示先生成21(N x 3)个随机数,然后将它们组装成7行,那么每行就是三个数,这对应了颜色的三个组成部分。如果不理解这行代码,请先学习一下Python 机器学习库 NumPy 教程 title
指定了图形的标题,labels
指定了标签,alpha
是透明度
这段代码输出的图形如下所示:
bar
函数的详细说明参见这里:matplotlib.pyplot.bar
直方图
hist
函数用来绘制直方图。直方图看起来是条形图有些类似。但它们的含义是不一样的,直方图描述了数据中某个范围内数据出现的频度。这么说有些抽象,我们通过一个代码示例来描述就好理解了:
# hist.py import matplotlib.pyplot as plt import numpy as np data = [np.random.randint(0, n, n) for n in [3000, 4000, 5000]] labels = ['3K', '4K', '5K'] bins = [0, 100, 500, 1000, 2000, 3000, 4000, 5000] plt.hist(data, bins=bins, label=labels) plt.legend() plt.show()
上面这段代码中,[np.random.randint(0, n, n) for n in [3000, 4000, 5000]]
生成了包含了三个数组的数组,这其中:
第一个数组包含了3000个随机数,这些随机数的范围是 [0, 3000) 第二个数组包含了4000个随机数,这些随机数的范围是 [0, 4000) 第三个数组包含了5000个随机数,这些随机数的范围是 [0, 5000)
bins数组用来指定我们显示的直方图的边界,即:[0, 100) 会有一个数据点,[100, 500)会有一个数据点,以此类推。所以最终结果一共会显示7个数据点。同样的,我们指定了标签和图例。
这段代码的输出如下图所示:
在这幅图中,我们看到,三组数据在3000以下都有数据,并且频度是差不多的。但蓝色条只有3000以下的数据,橙色条只有4000以下的数据。这与我们的随机数组数据刚好吻合。
hist
函数的详细说明参见这里:matplotlib.pyplot.hist
结束语
通过本文,我们已经知道了Matplotlib的大致使用方法和几种最基本的图形的绘制方式。
需要说明的是,由于是入门教程,因此本文中我们只给出了这些函数和图形最基本的使用方法。但实际上,它们的功能远不止这么简单。因此本文中我们贴出了这些函数的API地址以便读者进一步的研究。
相关推荐:
以上がPython プロット ライブラリ Matplotlib 入門tutorial_pythonの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

1.0简介三维图像技术是现在国际最先进的计算机展示技术之一,任何普通电脑只需要安装一个插件,就可以在网络浏览器中呈现三维的产品,不但逼真,而且可以动态展示产品的组合过程,特别适合远程浏览。立体图视觉上层次分明色彩鲜艳,具有很强的视觉冲击力,让观看的人驻景时间长,留下深刻的印象。立体图给人以真实、栩栩如生,人物呼之欲出,有身临其境的感觉,有很高的艺术欣赏价值。2.0三维图画法与类型首先要安装Matplotlib库可以使用pip:pipinstallmatplotlib假设已经安装了matplotl

安装步骤:1、打开PyCharm集成开发环境;2、转到“File”菜单,然后选择“Settings”;3、在“Settings”对话框中,选择“Project: <your_project_name>”下的“Python Interpreter”;4、单击右上角的加号按钮“+”,在弹出的对话框中搜索“matplotlib”;5、选择“matplotlib”安装即可。

深入学习matplotlib颜色表,需要具体代码示例一、引言matplotlib是一个功能强大的Python绘图库,它提供了丰富的绘图函数和工具,可以用于创建各种类型的图表。而颜色表(colormap)是matplotlib中一个重要的概念,它决定了图表的配色方案。深入学习matplotlib颜色表,将帮助我们更好地掌握matplotlib的绘图功能,使绘

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

一、添加文本标签plt.text()用于在绘图过程中,在图像上指定坐标的位置添加文本。需要用到的是plt.text()方法。其主要的参数有三个:plt.text(x,y,s)其中x、y表示传入点的x和y轴坐标。s表示字符串。需要注意的是,这里的坐标,如果设定有xticks、yticks标签,则指的不是标签,而是绘图时x、轴的原始值。因为参数过多,不再一一解释,根据代码学习其用法。ha='center’表示垂直对齐方式居中,fontsize=30表示字体大小为3

安装教程:1、打开命令行窗口,确保已经安装了Python和pip;2、输入“pip install matplotlib”命令安装matplotlib;3、等待安装完成后,通过import matplotlib.pyplot as plt代码验证matplotlib是否成功安装,若没有报错,说明matplotlib已经成功安装。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

显示中文的方法有安装中文字体、配置字体路径、使用中文字符等。详细介绍:1、安装中文字体:首先,您需要安装支持中文字符的字体文件。常用的中文字体有SimHei、SimSun、Microsoft YaHei等;2、配置字体路径:在代码中,需要指定字体文件的路径;3、使用中文字符:在代码中,直接使用中文字符即可。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Dreamweaver Mac版
ビジュアル Web 開発ツール
