検索
ホームページバックエンド開発Python チュートリアル在Linux下使用Python的matplotlib绘制数据图的教程

如果你想要在Linxu中获得一个高效、自动化、高质量的科学画图的解决方案,应该考虑尝试下matplotlib库。Matplotlib是基于python的开源科学测绘包,基于python软件基金会许可证发布。大量的文档和例子、集成了Python和Numpy科学计算包、以及自动化能力,是作为Linux环境中进行科学画图的可靠选择的几个原因。这个教程将提供几个用matplotlib画图的例子。
特性

  •     支持众多的图表类型,如:bar,box,contour,histogram,scatter,line plots....
  •     基于python的语法
  •     集成Numpy科学计算包
  •     数据源可以是 python 的列表、键值对和数组
  •     可定制的图表格式(坐标轴缩放、标签位置及标签内容等)
  •     可定制文本(字体,大小,位置...)
  •     支持TeX格式(等式,符号,希腊字体...)
  •     与IPython相兼容(允许在 python shell 中与图表交互)
  •     自动化(使用 Python 循环创建图表)
  •     用Python 的循环迭代生成图片
  •     保存所绘图片格式为图片文件,如:png,pdf,ps,eps,svg等

基于Python语法的matplotlib是其许多特性和高效工作流的基础。世面上有许多用于绘制高质量图的科学绘图包,但是这些包允许你直接在你的Python代码中去使用吗?除此以外,这些包允许你创建可以保存为图片文件的图片吗?Matplotlib允许你完成所有的这些任务。从而你可以节省时间,使用它你能够花更少的时间创建更多的图片。
安装

安装Python和Numpy包是使用Matplotlib的前提。

可以通过如下命令在Debian或Ubuntu中安装Matplotlib:

  $ sudo apt-get install python-matplotlib 

在Fedora或CentOS/RHEL环境则可用如下命令:

  $ sudo yum install python-matplotlib 

Matplotlib 例子

本教程会提供几个绘图例子演示如何使用matplotlib:

  •     离散图和线性图
  •     柱状图
  •     饼状图

在这些例子中我们将用Python脚本来执行Mapplotlib命令。注意numpy和matplotlib模块需要通过import命令在脚本中进行导入。

np为nuupy模块的命名空间引用,plt为matplotlib.pyplot的命名空间引用:

  import numpy as np
  import matplotlib.pyplot as plt

例1:离散和线性图

第一个脚本,script1.py 完成如下任务:

  •     创建3个数据集(xData,yData1和yData2)
  •     创建一个宽8英寸、高6英寸的图(赋值1)
  •     设置图画的标题、x轴标签、y轴标签(字号均为14)
  •     绘制第一个数据集:yData1为xData数据集的函数,用圆点标识的离散蓝线,标识为"y1 data"
  •     绘制第二个数据集:yData2为xData数据集的函数,采用红实线,标识为"y2 data"
  •     把图例放置在图的左上角
  •     保存图片为PNG格式文件

script1.py的内容如下:  

 import numpy as np
  import matplotlib.pyplot as plt
   
  xData = np.arange(0, 10, 1)
  yData1 = xData.__pow__(2.0)
  yData2 = np.arange(15, 61, 5)
  plt.figure(num=1, figsize=(8, 6))
  plt.title('Plot 1', size=14)
  plt.xlabel('x-axis', size=14)
  plt.ylabel('y-axis', size=14)
  plt.plot(xData, yData1, color='b', linestyle='--', marker='o', label='y1 data')
  plt.plot(xData, yData2, color='r', linestyle='-', label='y2 data')
  plt.legend(loc='upper left')
  plt.savefig('images/plot1.png', format='png')

所画之图如下:

201561190648250.jpg (640×480)

例2:柱状图

第二个脚本,script2.py 完成如下任务:

  •     创建一个包含1000个随机样本的正态分布数据集。
  •     创建一个宽8英寸、高6英寸的图(赋值1)
  •     设置图的标题、x轴标签、y轴标签(字号均为14)
  •     用samples这个数据集画一个40个柱状,边从-10到10的柱状图
  •     添加文本,用TeX格式显示希腊字母mu和sigma(字号为16)
  •     保存图片为PNG格式。

script2.py代码如下:

  import numpy as np
  import matplotlib.pyplot as plt
   
  mu = 0.0
  sigma = 2.0
  samples = np.random.normal(loc=mu, scale=sigma, size=1000)
  plt.figure(num=1, figsize=(8, 6))
  plt.title('Plot 2', size=14)
  plt.xlabel('value', size=14)
  plt.ylabel('counts', size=14)
  plt.hist(samples, bins=40, range=(-10, 10))
  plt.text(-9, 100, r'$\mu$ = 0.0, $\sigma$ = 2.0', size=16)
  plt.savefig('images/plot2.png', format='png')

结果见如下链接:

201561190740111.jpg (640×480)

例3:饼状图

第三个脚本,script3.py 完成如下任务:

  •     创建一个包含5个整数的列表
  •     创建一个宽6英寸、高6英寸的图(赋值1)
  •     添加一个长宽比为1的轴图
  •     设置图的标题(字号为14)
  •     用data列表画一个包含标签的饼状图
  •     保存图为PNG格式

脚本script3.py的代码如下:

  import numpy as np
  import matplotlib.pyplot as plt
   
  data = [33, 25, 20, 12, 10]
  plt.figure(num=1, figsize=(6, 6))
  plt.axes(aspect=1)
  plt.title('Plot 3', size=14)
  plt.pie(data, labels=('Group 1', 'Group 2', 'Group 3', 'Group 4', 'Group 5'))
  plt.savefig('images/plot3.png', format='png')

结果如下链接所示:

201561190812025.jpg (640×480)

总结

这个教程提供了几个用matplotlib科学画图包进行画图的例子,Matplotlib是在Linux环境中用于解决科学画图的绝佳方案,表现在其无缝地和Python、Numpy连接、自动化能力,和提供多种自定义的高质量的画图产品。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Python vs. C:比較されたアプリケーションとユースケースPython vs. C:比較されたアプリケーションとユースケースApr 12, 2025 am 12:01 AM

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間のPython計画:現実的なアプローチ2時間のPython計画:現実的なアプローチApr 11, 2025 am 12:04 AM

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Python:主要なアプリケーションの調査Python:主要なアプリケーションの調査Apr 10, 2025 am 09:41 AM

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間でどのくらいのPythonを学ぶことができますか?2時間でどのくらいのPythonを学ぶことができますか?Apr 09, 2025 pm 04:33 PM

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか?Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか?Apr 02, 2025 am 07:12 AM

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの精度を改善する方法は?風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの精度を改善する方法は?Apr 02, 2025 am 07:09 AM

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

DVWA

DVWA

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

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい