データの視覚化とmatplotlibの

データの視覚化とmatplotlibの

処理、解析およびデータのPython近年の可視化は、データの可視化は、美しいグラフとして提示されたデータを参照し、最も重要な応用分野の一つとなり、さらにデータは、法律だけでなく、隠された情報に含まれていることを発見しました。データの可視化とデータマイニング分析と任意の接続は密接ビッグデータに関連して、これらの領域はホットであり、「深い学習」の究極の目標の瞬間は、過去のデータから将来の状況を予測するために達成することです。Pythonは、既存のサードパーティのライブラリに基づいて完全な作業まで持つことができ、作業の身体を、探索するデータの百万さらに大きな金額を達成することができますでもパソコンで、偉大なデータの視覚化です(ない「重複ホイールません」)。matplotlibのは、群衆の中に描画Pythonライブラリである、それは多くのツールが含まれている、あなたはこれらのツールを使用する(など散布図、折れ線グラフ、ヒストグラム、円グラフ、レーダーチャートを含む)グラフィックスの様々なを作成することができ、Pythonの科学的なコンピューティング・コミュニティまた、多くの場合、ジョブデータの可視化を完了するために使用されます。

インストールmatplotlibの

次のようにピップmatplotlibの、コマンドをインストールするために使用することができます。

pip install matplotlib

折れ線グラフを描きます

# coding: utf-8
import matplotlib.pyplot as plt


def main():
    # 保存x轴数据的列表
    x_values = [x for x in range(1, 11)]
    # 保存y轴数据的列表
    y_values = [x ** 2 for x in range(1, 11)]
    # 设置图表的标题以及x和y轴的说明
    plt.title('Square Numbers')
    plt.xlabel('Value', fontsize=18)
    plt.ylabel('Square', fontsize=18)
    # 设置刻度标记的文字大小
    plt.tick_params(axis='both', labelsize=16)
    # 绘制折线图
    plt.plot(x_values, y_values)
    plt.show()


if __name__ == '__main__':
    main()

以下に示すように、プログラムを実行し、結果。

[画像のダンプはチェーンが失敗し、発信局は、直接アップロード(IMG-94nBGppi-1581379107399)(./ RES / result1.png)ダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよいです]

jupyterノートブックならば、魔法の命令を使用する必要が%matplotlib inreslineページ、次のような効果のグラフに示す表示を設定するために。

[画像ソースステーションは、セキュリティチェーン機構を有していてもよい、チェーンが失敗したダンプ、直接アップロードダウン画像を保存することをお勧めします(IMG-9XBWXjnB-1581379107400)(./ RES /結果・イン・jupyter.png)]

散布図を描きます

上記のコードであってもよいplotへの機能scatter図に示すように、スキャッタグラムの結果をプロットした機能。

[画像のダンプはチェーンが失敗し、発信局は(IMG-f19bKXt5-1581379107400)(./ RES / result2.png)直接アップロードダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよいです]

もちろん、直接によるplot折れ線グラフ内に設けられた機能を線画の形状及び色スキャッタグラム変換され、次のように対応するコードであり、前記パラメータ「XR」の各点を記号で表される「X」パターン、色赤色(Rの ED)。

plt.plot(x_values, y_values, 'xr')

図に示すように、プログラムを再実行した結果。

[画像のダンプはチェーンが失敗し、発信局は、直接アップロード(IMG-cBR2AgIe-1581379107401)(./ RES / result3.png)ダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよいです]

次のコードを追加することにより、X座標とY軸の範囲を調整することができ、この問題を解決するために、1と10パターンの位置に「X」マークに対応するあまり明らかであるコーナーに気づいたかもしれません。

plt.axis([0, 12, 0, 120])

図に示すような効果を調整します。

[画像のダンプはチェーンが失敗し、発信局は、直接アップロード(IMG-VM39ieMP-1581379107401)(./ RES / result4.png)ダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよいです]

図面の正弦波

次の手順では、我々はと呼ばれる使用numpyのサンプルを生成し、正弦値を計算するために、サードパーティのライブラリを。numpyのは、主に、コンピューティングの配列のために使用され、非常に高速な数学ライブラリを実行しています。それはあなたがベクトルや行列の数学だけでなく、Pythonで根本的なC言語の関数の多くを使用することができます。あなたは、Python機械学習を介してデータに関連するコンテンツを学ぶか、科学的にしたい場合は、numpyのを使用することを学ぶ必要があります。

# coding: utf-8
import matplotlib.pyplot as plt
import numpy as np


def main():
    # 指定采样的范围以及样本的数量
    x_values = np.linspace(0, 2 * np.pi, 1000)
    # 计算每个样本对应的正弦值
    y_values = np.sin(x_values)
    # 绘制折线图(线条形状为--, 颜色为蓝色)
    plt.plot(x_values, y_values, '--b')
    plt.show()


if __name__ == '__main__':
    main()

以下に示すように、プログラムを実行し、結果。

[画像のダンプはチェーンが失敗し、発信局は(IMG-MijtY0vT-1581379107401)(./ RES / result5.png)直接アップロードダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよいです]

複数の画像を座標系で描画する場合、コードは以下のように変更してもよいです。

# coding: utf-8
import matplotlib.pyplot as plt
import numpy as np


def main():
    x_values = np.linspace(0, 2 * np.pi, 1000)
    plt.plot(x_values, np.sin(x_values), '--b')
    plt.plot(x_values, np.sin(2 * x_values), '--r')
    plt.show()


if __name__ == '__main__':
    main()

図に示すように、コードは作用効果を変更しました。

[画像のダンプはチェーンが失敗し、発信局は(IMG-q8uRixS9-1581379107402)(./ RES / result6.png)直接アップロードダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよいです]

所望の二つの曲線は二つの座標系にプロットされている場合は、次のように動作することができます。

# coding: utf-8
import matplotlib.pyplot as plt
import numpy as np


def main():
    # 将样本数量减少为50个
    x_values = np.linspace(0, 2 * np.pi, 50)
    # 设置绘图为2行1列活跃区为1区(第一个图)
    plt.subplot(2, 1, 1)
    plt.plot(x_values, np.sin(x_values), 'o-b')
    # 设置绘图为2行1列活跃区为2区(第二个图)
    plt.subplot(2, 1, 2)
    plt.plot(x_values, np.sin(2 * x_values), '.-r')
    plt.show()


if __name__ == '__main__':
    main()

図に示すように結果。

[画像のダンプはチェーンが失敗し、発信局は、直接アップロード(IMG-dekvJ2iV-1581379107402)(./ RES / result7.png)ダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよいです]

ヒストグラムを描きます

我々は、ランダムモジュールnumpyのの正常な機能によって生成することができる通常の三つのパラメータ、サンプルの標準偏差および数を所望し、次のようにコードのヒストグラムとしてプロットを表すサンプルデータ。

# coding: utf-8
import matplotlib.pyplot as plt
import numpy as np


def main():
    # 通过random模块的normal函数产生1000个正态分布的样本
    data = np.random.normal(10.0, 5.0, 1000)
    # 绘制直方图(直方的数量为10个)
    plt.hist(data, 10)
    plt.show()


if __name__ == '__main__':
    main()

図に示すように、作用効果。

[画像のダンプはチェーンが失敗し、発信局は、直接アップロード(IMG-N1uHSbBp-1581379107402)(./ RES / result8.png)ダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよいです]

Pygalを使用してベクトルを描きます

ベクタグラフィックス(SVG)は、コンピュータグラフィックスポイントを使用して、数式に基づいて画像の幾何学的形状は、直線又は多角形で表して、アプリケーションは、現在、非常に多くの画像ファイル形式であり、「スケーラブルベクターグラフィックス」を意味します。画素は、異なるビットマップイメージを表す、W3Cベクトルグラフィック言語によって定義されたオープン規格であるXML SVG、に基づいて画像データを格納使用し、理由にかかわらず、SVGや解像度の、ウェブ鮮明な画像を設計するために使用することができます詳細や明瞭任意の増幅の効果を失うことなく。SVG画像を直接記述するためのコードを使用することができ、あなたはまた、我々は、インタラクティブ機能を備えた画像を作ることができるSVGコードを変更することで、それを開くためのツールを処理する任意の単語を使用することができます。

PythonのPygalはSVGを生成するために使用することができ、それはピップでインストールすることができます。

from random import randint
import pygal


def roll_dice(n=1):
	total = 0
	for _ in range(n):
		total += randint(1, 6)
	return total


def main():
    results = []
    # 将两颗色子摇10000次记录点数
    for _ in range(10000):
        face = roll_dice(2)
        results.append(face)
    freqs = []
    # 统计2~12点各出现了多少次
    for value in range(2, 13):
        freq = results.count(value)
        freqs.append(freq)
    # 绘制柱状图
    hist = pygal.Bar()
    hist.title = 'Result of rolling two dice'
    hist.x_labels = [x for x in range(2, 13)]
    hist.add('Frequency', freqs)
    # 保存矢量图
    hist.render_to_file('result.svg')


if __name__ == '__main__':
    main()
    

図に示すように、上記の手順、結果を実行します。

[画像のダンプはチェーンが失敗し、発信局は、直接アップロード(IMG-yu4GLAxU-1581379107403)(./ RES / result9.png)ダウン画像を保存することが推奨され、セキュリティチェーン機構を有していてもよいです]

追伸

matplotlibのとnumpyの強い私たちはここだけで、我々は他の機能を紹介して閉会したときに我々はポイントに、内部以降の内容ではこれら二つのサードパーティのライブラリを使用しますが、氷山の一角をのぞき見しています。


私は公共の数の関心を歓迎し、「キーワード返信のPythonを贈り物両手があるだろう、」!私はあなたに成功したインタビューをしたいです

公開された95元の記事 ウォンの賞賛0 ビュー3055

おすすめ

転載: blog.csdn.net/weixin_41818794/article/details/104257984