今日の人工知能とビッグデータの時代において、データの視覚化はデータ分析アプリケーションにおける非常に重要なリンクとなっています。データの視覚化は、データをより直観的に理解し、データ内のパターンや異常を発見するのに役立ち、また、データ分析を他の人により明確に伝えるのにも役立ちます。
Python は最も広く使用されているプログラミング言語の 1 つであり、データ分析やデータ マイニングの分野で非常に優れたパフォーマンスを発揮します。 Python は、Matplotlib、Seaborn、Bokeh などの豊富なデータ視覚化ライブラリを提供します。その中でも、Matplotlib は Python で最も有名なデータ視覚化ライブラリの 1 つであり、非常に豊富な視覚化機能を提供します。しかし、Matplotlib の基礎となるデータ視覚化コア技術については公式ドキュメントがあまり詳しく説明されておらず、多くの開発者は Matplotlib を理解していない可能性があります。基礎となるテクノロジーが実装されます。したがって、この記事では、Python の基礎となるテクノロジを使用してデータ視覚化を実現する方法に焦点を当て、具体的なコード例を示します。
Matplotlib は Python で広く使用されているデータ視覚化ライブラリであり、基盤となる層は pyplot に基づいています。
通常、最初に視覚化ライブラリをインポートし、次に、plot() 関数を通じてグラフィックス インスタンスを作成し、その後、一連の関数を通じてグラフィックスを作成して表示します。
以下は、Python で Matplotlib ライブラリを使用して、水平軸として x 軸、垂直軸として y 軸を持つ座標曲線を描く方法を示す簡単な例です。
import matplotlib.pyplot as plt import numpy as np # 生成X轴的范围是(-π,π)内的等差数列 x = np.linspace(-np.pi,np.pi,256,endpoint=True) # 计算cos(x)和sin(x)的值 C,S = np.cos(x), np.sin(x) #创建画布和子图 fig,ax = plt.subplots() # 画出cos(x)和sin(x)的曲线图 ax.plot(x,C,label='cos(x)') ax.plot(x,S,label='sin(x)') # 设置标题,x轴,y轴的名称 ax.set_title('Cos and Sin Function') ax.set_xlabel('X Axis') ax.set_ylabel('Y Axis') # 设置图例 ax.legend() # 显示图形 plt.show()
上記のコードを使用すると、x 軸を横軸、y 軸を縦軸とした座標曲線を簡単に描くことができます。
上記のコードでは、まず x 軸の値の範囲を生成し、次に cos(x) と sin(x) の値を計算しました。 )。次に、キャンバスとサブプロットを作成し、plot() 関数を使用して描画操作を実行します。最後に、いくつかの関数を使用してグラフのタイトル、X/Y 軸名、凡例を設定し、show() 関数を呼び出して Canvas インスタンスを表示します。
このうち、matplotlib.pyplot サブライブラリは Matplotlib ライブラリの下にある描画モジュールで、NumPy 配列上に描画するためのさまざまな関数を提供します。 Matplotlib の基礎となるテクノロジの実装は、2 つの側面、つまり、Matplotlib のキャンバス オブジェクトとレンダラー オブジェクトである FigureCanvas と Renderer から理解できます。
FigureCanvas は Matplotlib のオブジェクト指向グラフィックス表示クラスで、描画デバイスと対話し、描画結果を表示画面に出力します。上の例では、plt.subplots() を通じて Canvas オブジェクトである Figure を作成しました。後続の描画操作はすべてこのキャンバス上で実行されます。
Renderer は Matplotlib のレンダラー オブジェクトで、図面の線、点、テキストなどを画像に描画する、つまりキャンバス上にレンダリングする役割を果たします。上の例では、ax.plot() 関数を使用して cos(x) と sin(x) の曲線を描画しましたが、この関数は実際にレンダラー オブジェクトを使用してグラフィックスを描画します。このプロセスでは、まず Axis X/Y Limiter を呼び出して各座標軸のデータ範囲を決定し、次に Scaler を使用して元のデータをキャンバス上の座標に変換し、最後に Renderer を使用して実際の描画を実装します。手術。
Seaborn は、Matplotlib に基づく高レベルの描画ライブラリです。Matplotlib の基盤となる描画テクノロジーを維持しながら、よりシンプルで使いやすい API を提供します。 Seaborn は Matplotlib の補足および拡張機能であると言えます。
Seaborn ライブラリを使用した具体的なコード例を示すために、一変量ヒストグラムの描画を例として取り上げます。この例では、Seaborn ライブラリに組み込まれているデータセット「mpg」を使用します。
import seaborn as sns # 设置Seaborn图库的风格和背景颜色 sns.set(style='whitegrid', palette='pastel') # 读取数据 mpg = sns.load_dataset("mpg") # 绘制直方图,并设置额外参数 sns.distplot(mpg['mpg'], bins=20, kde=True, rug=True) # 设置图形标题以及X轴,Y轴的标签 plt.title('Histogram of mpg ($mu=23.45, ; sigma=7.81$)') plt.xlabel('MPG') plt.ylabel('Frequency') # 显示图形 plt.show()
上記のコードにより、mpg データの分布を示すヒストグラムを描画できます。
上記のコードでは、まず Seaborn ライブラリのスタイルと背景色を設定し、次に Seaborn に付属する mpg データ セットを読み取ります。次に、 sns.distplot() 関数を使用してヒストグラムを描画し、グラフィック効果を調整するためにいくつかの追加パラメータを設定しました。最後に、plt.title()、plt.xlabel()、plt.ylabel() 関数を使用してグラフのタイトル、X/Y 軸名、その他の情報を設定し、plt.show() 関数を呼び出します。をクリックしてグラフを表示します。
Seaborn の基盤テクノロジーの実装プロセスは Matplotlib と似ており、描画も FigureCanvas と Renderer を通じて実装されます。 Seaborn の基盤となるテクノロジーでは、FacetGrid を通じて FigureCanvas オブジェクトが作成され、描画はこの Canvas オブジェクトに基づいて行われます。同時に、Seaborn ライブラリでの描画は主に AxesSubplot クラスを通じて実装されます。このクラスは Matplotlib の Axes クラスのサブクラスですが、より効率的で使いやすいように設計されているため、Seaborn では基礎となる描画テクノロジの主な実装として使用されます。
Bokeh は、データ視覚化と探索的分析のための Python ライブラリであり、インタラクティブで応答性が高く、動的データ視覚化を効率的に作成できます。 Bokeh の基盤テクノロジーの描画テクノロジーは主に JavaScript に基づいて実装されているため、よりインタラクティブで動的な視覚化効果を実現できます。
下面展示一个简单的 Bokeh 代码示例,说明如何在 Python 中使用 Bokeh 库绘制一个5条折线图,其中使用 Bokeh 提供的工具箱来进行交互式操作。
from bokeh.plotting import figure, show from bokeh.io import output_notebook # 启用Jupyter Notebook绘图 output_notebook() # 创建一个 Bokeh 图形对象 p = figure(title="Simple Line Graph") # 创建折线图 x = [1, 2, 3, 4, 5] y = [6, 7, 2, 4, 5] p.line(x, y, legend="Line A", line_width=2) y2 = [2, 3, 4, 5, 6] p.line(x, y2, legend="Line B", line_width=2) y3 = [4, 5, 1, 7, 8] p.line(x, y3, legend="Line C", line_width=2) y4 = [6, 2, 4, 8, 1] p.line(x, y4, legend="Line D", line_width=2) y5 = [5, 8, 6, 2, 4] p.line(x, y5, legend="Line E", line_width=2) # 添加工具箱 p.toolbar_location = "above" p.toolbar.logo = "grey" # 设置图形的X轴,Y轴以及图例 p.xaxis.axis_label = "X" p.yaxis.axis_label = "Y" p.legend.location = "bottom_right" # 显示图形 show(p)
通过上述代码,可以绘制出一个包含5条折线的折线图,并且提供了一些 Bokeh 工具箱来提供交互式操作。
Bokeh 底层技术的实现过程中,最核心的部分就是基于 JavaScript 来实现绘图。在上述代码中,我们主要使用了 Bokeh 的 figure()函数来创建一个 Bokeh 图形对象。同时,我们也使用了 Bokeh 提供的 line()函数来创建折线图,并且添加了一些工具箱和额外的功能,如工具箱的位置、X轴/Y轴的名称和图例的位置等等。
在Bokeh 底层技术的实现过程中,将Python代码转换为JavaScript代码非常重要。Bokeh 将Python代码转换为 JavaScript 代码,然后使用 Web 技术在前端绘图。Bokeh 库中的 BokehJS 是使用 TypeScript 编写的 JavaScript 库,它实现了所有 Bokeh 的绘图功能。因此,在使用Bokeh库绘制数据可视化时,我们也需要对比对JavaScript进行一些调试和定制。
数据可视化是一个重要的环节,而Python通过各种底层技术提供了多种数据可视化库,其中最为流行的有Matplotlib、Seaborn和Bokeh等。这些库都支持Python本身的各种数据类型,并且能够提供非常高效,简洁和灵活的绘制方法。
本文主要介绍了使用Python底层技术实现数据可视化的方法,并提供了各库中的具体代码示例。通过学习这些底层技术,可以更加深入地了解Python数据可视化库背后的原理和细节。
以上がPython の基礎となるテクノロジーのデータ視覚化を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。