ホームページ >バックエンド開発 >Python チュートリアル >今後は、Python の強力な描画ツールである matplotlib を使用してチャートを制御できるようになります。
関連する学習の推奨事項: python チュートリアル
まず、別の非常に便利なデータ分析ライブラリを紹介します —— matplotlib。
参加する場合大学 数学モデリングのコンテストに参加したことがある方、または MATLAB を使用したことがある方は、このソフトウェアの描画機能にさらに感銘を受けるでしょう。 MATLAB を使用すると、さまざまな関数や数値分布画像を非常に簡単かつ便利に作成できます。使ったことがなくても大丈夫、知っておくと便利です。 MATLAB は使いやすいですが、結局は有料のソフトウェアであり、多くの人は MATLAB よりも Python の構文を好みます。
そこで MATLAB が検討され、その後、ある師匠が MATLAB の描画ツールを真似て、同様の描画ツールを Python で開発しました。これは、今日この記事で説明する matplotlib であり、Python、データ分析、機械学習の分野で最も広く使用されている描画ツールキット でもありますが、それらの分野ではほとんどありません。少し前に、米国政府が関与し、MATLAB が中国のいくつかの大学での MATLAB の使用禁止を発表しました。代わりに Python のオープン ソース ツールを使用できるのではないかと提案する人もいました。もちろん、たくさんのツールがあります。 MATLAB の他の強力なツールである Function、Python が必ずしもそれを置き換えることができるわけではありませんが、少なくともグラフィックスの分野では問題ありません。
pip install matplotlib复制代码
パッケージをインストールした後、通常の使用法では 名前を plt に変更するため、ソース コードや他のマスターのコードを読むと、描画時に plt が表示されることがよくあります。xxx、それはそれがどのようにして起こったか。
import matplotlib.pyplot as plt复制代码
プロットにはよく使用される描画ツールがいくつかあります。最初のツールは、折れ線グラフまたは曲線グラフを作成するもので、これはプロットと呼ばれます。 2 番目のタイプは、hist と呼ばれる bar chart を作成することです。3 番目のタイプは、散布図 を作成することであり、scatter と呼ばれます。4 番目のタイプは、pie を作成することです。のチャート。さらに、いくつかの 3 次元画像を作成することもできますが、日常生活で使用されることはほとんどなく、主に自分のスキルを誇示するために使用されます。
プロットは、実際に曲線グラフを作成するために使用されます。使用される方法は、点を描画することです 現在、データポイントが滑らかな曲線に接続されます。もちろん、折れ線や直線も可能で、グラフの最終的な効果はデータによって完全に決まります。
その使用法は非常に簡単で、最も基本的な使用法では、x 軸と y 軸の値をそれぞれ表す 2 つのリストを渡すだけです。たとえば、ロジスティック関数の画像を作成したいとします。これを行うことができます:x = np.linspace(-10, 10, 100)y = 1 / (1 + np.exp(-x))plt.plot(x, y)plt.show()复制代码上記のコードでは、最初に numpy の linspace 関数を使用して、-10 から 10 までの numpy 配列を生成します。この配列には 100 個の点があり、-10 から 10 までに均等に分散されています。それに対応するロジスティック関数の値
を計算します。この関数は誰でもよく知っていると思いますが、x は 100 点のリストであり、対応する y も 100 点のリストです。つまり、y に対応する x は点のペアを形成し、画像内の座標を表します。
変換を行う必要はありません。これら 2 つの配列を plt に渡すだけで、自動的に座標マッピングが完了します。最終的な効果は以下の通りです。 描画効果が非常に優れていることがわかります。全体像を描画するだけでなく、座標軸上の点も描画しました。これは私たちにとって便利です。をクリックしてデータを表示します。ヒストグラム を描画するために使用できます。非常に一般的なイメージ。金融分野では、データの傾向を反映するためにヒストグラムがよく使用され、データ分析や機械学習でも、特定の特徴や値の分布を反映するためにヒストグラムがよく使用されます。
在直方图当中我们只需要传入一个数组,就是我们要求分布的数组,另外我们需要再输入一个参数bins,表示我们希望将数据分桶的数量。然后它会绘制出每个桶中数据数量的直方图,这样我们就可以很直观地看出分布来了。
x = np.random.normal(size=200)plt.hist(x,bins=30)plt.show()复制代码
这里我们调用numpy当中以正态分布概率随机的函数,得到的结果应该是正态分布的。
我们查看图像,这个结果和我们的预期基本吻合。
第三种图像叫做散点图,它反应的是每个点的分布情况。比如我们之前在介绍KNN和Kmeans模型的时候曾经都作过散点图,一个点代表一个样本,通过散点图我们观察的也是样本和数据分布的情况。但是和直方图相比它更加得直观,我们能直接看到分布,而不是一个分布的统计结果。
但是它也有缺点,缺点就是我们只能观察二维平面当中的点的分布,毕竟超过3维的维度就没办法绘制了。而且3维的数据分布也不是很好观察。
同样散点图的绘制也很简单,我们只需要调用scatter函数传入x和y的数组即可。
x = np.random.rand(100)y = np.random.rand(100)plt.scatter(x, y)复制代码
这里我们的x和y都是随机分布,所以得到的结果是散乱没有规律的点。
最后我们来看下饼状图,饼状图也很常用,虽然也是反映的数据分布,但是它更多是体现某一个值占的比例。通过饼状图,我们可以很直观地了解到这点。
我们可以传入一个list进入pie函数,plot会根据list当中值在总体的占比绘制饼状图。我们来看个很简单的例子:
a = np.array([0.5, 0.3, 0.2, 0.1, 0.8])plt.pie(a)复制代码
得到的结果如下:
前の結果と比較すると、円グラフは領域を区別するために異なる色が使用されているため、やや不明確ですが、各領域を視覚的に確認するのは困難です。代表する?この問題は解決でき、いくつかのパラメーターと設定を渡すことで、より多くの情報を表示し、データをより鮮やかで明確にすることができます。
プログラミング学習について詳しく知りたい方は、php training のコラムに注目してください!
以上が今後は、Python の強力な描画ツールである matplotlib を使用してチャートを制御できるようになります。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。