Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Matplotlibでカスタムカラーとカットーム領域サイズを使用して4D散布図をプロットする方法は?


はじめに..

散布図は、2つの変数間に関係があるかどうかを確認するために、2次元でデータを表す場合に非常に役立ちます。散布図は、データがX値とY値のドットとして表されるグラフです。

その方法..

1.次のコマンドでmatplotlibをインストールします。

pip install matplotlib

2.matplotlibをインポートします

import matplotlib.pyplot as plt
tennis_stats = (('Federer', 20),('Nadal', 20),('Djokovic', 17),('Sampras', 14),('Emerson', 12),('laver', 11),('Murray', 3),('Wawrinka', 3),('Zverev', 0),('Theim', 1),('Medvedev',0),('Tsitsipas', 0),('Dimitrov', 0),('Rublev', 0))

3.次のステップは、任意の配列形式でデータを準備することです。データベースまたはスプレッドシートからデータを読み取り、以下の形式でデータをフォーマットすることもできます。

titles = [title for player, title in tennis_stats]
players = [player for player, title in tennis_stats]

4. .scatterのパラメーターは、matplotlibの他のメソッドと同様に、X値とY値の配列を必要とします。

* -* X値とY値は両方とも同じサイズである必要があり、データはデフォルトでフロートに変換されます。

plt.scatter(titles, players)


<matplotlib.collections.PathCollection at 0x28df3684ac0>

Python Matplotlibでカスタムカラーとカットーム領域サイズを使用して4D散布図をプロットする方法は?

5.ああ、x軸にプロットされた私のGrandSlamタイトルはフロートです。それらを整数に変換し、以下の関数でx軸とy軸のタイトルも追加します。軸フォーマッタは.set_major_formatterで上書きされます。

from matplotlib.ticker import FuncFormatter
def format_titles(title, pos):
return '{}'.format(int(title))

plt.gca().xaxis.set_major_formatter(FuncFormatter(format_titles))
plt.xlabel('Grandslam Titles')
plt.ylabel('Tennis Player')
plt.scatter(titles, players)

Python Matplotlibでカスタムカラーとカットーム領域サイズを使用して4D散布図をプロットする方法は?

6.散布図を単なる2Dチャートとは考えないでください。散布図は、3次元(面積)、さらには4次元(色)を追加することもできます。以下で私が何をするかについて少し説明させてください。

まず、選択した色を定義してから、ランダムに色を選択してツアー値を割り当てます。

アルファ値により、各ポイントが半透明になり、オーバーラップする場所を確認できます。この値が高いほど、ポイントの透明度は低くなります。

import random

# define your own color scale.
random_colors = ['#FF0000', '#FFFF00', '#FFFFF0', '#FFFFFF', '#00000F']

# set the number of colors similar to our data values
color = [random.choice(random_colors) for _ in range(len(titles))]

plt.scatter(titles, players, c=color, alpha=0.5)


<matplotlib.collections.PathCollection at 0x28df2242d00>

Python Matplotlibでカスタムカラーとカットーム領域サイズを使用して4D散布図をプロットする方法は?

7.では、表現のサイズ/領域を少し大きくしましょう。

import random

# define your own color scale.
random_colors = ['#FF0000', '#FFFF00', '#FFFFF0', '#FFFFFF', '#00000F']

# set the number of colors similar to our data values
color = [random.choice(random_colors) for _ in range(len(titles))]

# set the size
size = [(50 * random.random()) ** 2 for _ in range(len(titles))]

plt.gca().xaxis.set_major_formatter(FuncFormatter(format_titles))
plt.xlabel('Grandslam Titles')
plt.ylabel('Tennis Player')

plt.scatter(titles, players, c=color, s=size, alpha=0.1)


<matplotlib.collections.PathCollection at 0x28df22e2430>

Python Matplotlibでカスタムカラーとカットーム領域サイズを使用して4D散布図をプロットする方法は?

グラフの最終的な目標は、データを理解しやすくすることです。

散布図でできることの基本を示しました。たとえば、色をサイズに依存させて、同じサイズのすべてのポイントを同じ色にすることで、データを区別するのに役立つ可能性があります。

詳細-https://matplotlib.org/。

最後に、すべてをまとめます。

# imports
import matplotlib.pyplot as plt
import random

# preparing data..
tennis_stats = (('Federer', 20),('Nadal', 20),('Djokovic', 17),('Sampras', 14),('Emerson', 12),('laver', 11),('Murray', 3),('Wawrinka', 3),('Zverev', 0),('Theim', 1),('Medvedev',0),('Tsitsipas', 0),('Dimitrov', 0),('Rublev', 0))

titles = [title for player, title in tennis_stats]
players = [player for player, title in tennis_stats]

# custom function
from matplotlib.ticker import FuncFormatter
def format_titles(title, pos):
return '{}'.format(int(title))

# define your own color scale.
random_colors = ['#FF0000', '#FFFF00', '#FFFFF0', '#FFFFFF', '#00000F']

# set the number of colors similar to our data values
color = [random.choice(random_colors) for _ in range(len(titles))]

# set the size
size = [(50 * random.random()) ** 2 for _ in range(len(titles))]

plt.gca().xaxis.set_major_formatter(FuncFormatter(format_titles))
plt.xlabel('Grandslam Titles')
plt.ylabel('Tennis Player')

plt.scatter(titles, players, c=color, s=size, alpha=0.1)


<matplotlib.collections.PathCollection at 0x2aa7676b670>

Python Matplotlibでカスタムカラーとカットーム領域サイズを使用して4D散布図をプロットする方法は?


  1. Matplotlibを使用してPythonで3D密度マップをプロットする方法は?

    matplotlibを使用してPythonで3D密度マップをプロットするには、次の手順を実行できます- numpyを使用してside、x、y、zを作成します。 Numpy linspace 3番目の数値に基づいて2つのポイント間にデータを作成するのに役立ちます。 サイドデータを使用して、座標ベクトルから座標行列を返します。 xとyを使用して指数データを作成します(ステップ2)。 pcolormesh()を使用して、不規則な長方形グリッドで疑似カラープロットを作成します メソッド。 図を表示するには、 show()を使用します メソッド。 例 from m

  2. Python Matplotlibでカスタムカラーとカットーム領域サイズを使用して4D散布図をプロットする方法は?

    はじめに.. 散布図は、2つの変数間に関係があるかどうかを確認するために、2次元でデータを表す場合に非常に役立ちます。散布図は、データがX値とY値のドットとして表されるグラフです。 その方法.. 1.次のコマンドでmatplotlibをインストールします。 pip install matplotlib 2.matplotlibをインポートします import matplotlib.pyplot as plt tennis_stats = (('Federer', 20),('Nadal', 20),('Djokovic', 17),(