みなさんこんにちは、Little Fです〜
Matplotlibは広く使われているPythonのデータ視覚化ライブラリで、使ったことがある人も多いと思います。
しかし、Matplotlib で作成されたチャートはあまり見栄えがよくなく、見苦しいといつも感じることがあります。
今日、Xiao F は、Matplotlib チャートを美しくするための 4 つの Python ライブラリを共有します。これにより、Matplotlib チャートの見栄えが簡単になります~
各メソッドは、import ステートメントと Matplotlib use ステートメントの 2 行のコードで実装できます。
これらのライブラリはクールな図を作成するのに最適ですが、対象ユーザーと色覚異常などの視覚的な問題の可能性を理解する必要があります。
以下で見てみましょう!
Matplotlib チャートの検討を開始する前に、チャートの生成に使用されるダミー データを作成しましょう。
数行のコードを書くだけで簡単に実行できます。
import numpy as np
# 生成 x 值
x = np.linspace( 0 , 10 , 20 )
# 生成 y 值
y = np.sin(x)
y2 = np.cos(x)
01 サイバーパンクスタイル - mplcyberpunk
サイバーパンクは、ディストピア、技術的に進歩した世界、カウンターカルチャー的な態度で知られる SF のサブジャンルです。
シーンは多くの場合、ネオンライトや明るく鮮やかな色などの要素を含む未来的なスタイルで描かれます。
たとえば、ポスターやインフォグラフィックを作成する場合、読者を引き付けるために追加の要素が必要です。ここでサイバーパンクスタイルが活躍します。
ただし、出版用の図を作成したり、論文で使用したりする場合は、専門的ではないとみなされる可能性があり、視覚障害のある読者には適していない可能性があることに注意してください。
このテーマの使用を開始するには、最初に mplcyberpunk ライブラリをインストールする必要があります。
# 安装
pip install mplcyberpunk
サイバーパンクのテーマを使用するには、plt.style.use() を呼び出してパラメータ cyberpunk を渡すだけです。
plt.scatter() を使用して散布図を描画します。スキャッターを光らせるには、make_scatter_glow() 関数を呼び出す必要もあります。
import mplcyberpunk
import matplotlib.pyplot as plt
# 使用赛博朋克风样式
plt.style.use('cyberpunk')
plt.figure(figsize=(8, 8))
# 散点图1
plt.scatter(x, y, marker='o')
mplcyberpunk.make_scatter_glow()
# 散点图2
plt.scatter(x, y2, marker='o', c='lime')
mplcyberpunk.make_scatter_glow()
# 坐标轴名称
plt.xlabel('X-Axis')
plt.ylabel('Y-Axis')
# 显示
plt.show()
上記のコードを実行すると、次の図が得られます。
サイバーパンクのテーマを折れ線グラフに適用します。線を光らせるには、make_lines_glow() を呼び出します。
# 使用赛博朋克风样式
plt.style.use('cyberpunk')
plt.figure(figsize=(8, 8))
# 折线图
plt.plot(x, y, marker='o')
plt.plot(x, y2, marker='o', c='lime')
# 发光效果
mplcyberpunk.make_lines_glow()
# 坐标轴名称
plt.xlabel('X-Axis')
plt.ylabel('Y-Axis')
# 显示
plt.show()
実行が完了すると、ネオンラインのグラフが返されます。
チャート効果をさらに一歩進めて、線と X 軸の間にグラデーションの塗りつぶしを追加することもできます。
# 使用赛博朋克风样式
plt.style.use('cyberpunk')
plt.figure(figsize=(8, 8))
# 折线图
plt.plot(x, y, marker='o')
plt.plot(x, y2, marker='o', c='lime')
# 发光效果+渐变填充
mplcyberpunk.add_gradient_fill(alpha_gradientglow=0.5, gradient_start='zero')
# 坐标轴名称
plt.xlabel('X-Axis')
plt.ylabel('Y-Axis')
# 显示
plt.show()
これにより、非常に興味深い効果が生まれます。
もちろん、このサイバーパンク ライブラリには他にも美化パラメータがあり、GitHub にアクセスして確認して使用できます。
アドレス: https://github.com/dhaitz/mplcyberpunk
02 マットプロット
matplotx ライブラリは、matplotlib チャートをすばやく美しくする簡単な方法を提供します。
これには、任意の matplotlib チャートに適用できるいくつかの使いやすいテーマが含まれています。
ダークテーマの Jupyter Notebook または VSCode でチャートを操作する場合、明るい白いチャートは少し厳しい場合があります。
この影響を軽減するには、スタイルをダークテーマに設定します。ただし、これを実現するには数行のコードが必要です。
次に説明するように、Matplotx を使用すると、このプロセスがはるかに簡単になります。複数のテーマが含まれているため、VSCode テーマに一致するテーマを簡単に見つけることができます。
Matplotx は、ターミナル/コマンド プロンプトを開いて次のコマンドを実行することで、Python 環境にインストールできます。
# 安装
pip install matplotx
インストール後、with ステートメントを使用して plt.style.context を呼び出し、matplotx.styles に渡すことができます。
ここでは、利用可能な多数のテーマから選択できます。非常に人気のあるドラキュラのテーマなど。
import matplotx
with plt.style.context(matplotx.styles.dracula):
# 散点图
plt.scatter(x, y, c=y2)
# 颜色类型
plt.colorbar(label='Y2')
# 坐标轴名称
plt.xlabel('X')
plt.ylabel('Y')
# 显示
plt.show()
コードを実行すると、次の図が表示されます。
その中でも、matplotxにはさまざまなスタイルがあり、詳細は次のとおりです。
Pitaya Smoothie テーマを使用して折れ線グラフを作成してみましょう。
複数のサブトピックがあるため、角括弧を使用してサブトピックにアクセスする必要があります。
この例ではダークテーマがあるため、それを使用するには「dark」パラメータを渡す必要があります。
with plt.style.context(matplotx.styles.pitaya_smoothie['dark']):
# 折线图
plt.plot(x, y, marker='o')
plt.plot(x, y2, marker='o')
# 坐标轴名称
plt.xlabel('X')
plt.ylabel('Y')
# 显示
plt.show()
上記のコードを実行すると、以下の折れ線グラフが表示されます。
もちろん軽いテーマもたくさんあります。例えばピタヤスムージーにはこんな使い方ができるものがあります。
with plt.style.context(matplotx.styles.pitaya_smoothie['light']):
このライブラリについて詳しく知りたい場合は、GitHub をチェックしてください。
アドレス: https://github.com/nschloe/matplotx
03 クォンタムブラックスタイル
QuantumBlack Labs は、他の企業がデータを使用してより良い意思決定を行えるよう支援するために 2012 年に設立された会社です。
彼らは、機械学習や人工知能などの高度な技術を使用して、医療、金融、運輸などのさまざまな業界にわたる複雑なデータセットを分析します。
数年前、彼らはスタイル ライブラリを GitHub でリリースしました。
住所:
https://github.com/quantumblacklabs/qbstyles
このテーマを使用するには、この Python ライブラリをインストールする必要があります。
# 安装
pip install qbstyles
インストール後、使用できます~
from qbstyles import mpl_style
# 深色主题开
mpl_style(dark=True)
# 深色主题关
mpl_style(dark=False)
散布図を作成するコードは次のとおりです。
from qbstyles import mpl_style
# 深色主题
mpl_style(dark=True)
# 非深色主题
mpl_style(dark=False)
# 散点图
plt.scatter(x, y, c=y2)
# 颜色
plt.colorbar(label='Y2')
# 坐标轴名称
plt.xlabel('X')
plt.ylabel('Y')
# 显示
plt.show()
明るいテーマと暗いテーマのどちらを選択したかに応じて、次の 2 つのグラフ結果を返します。
ダークテーマの折れ線グラフがどのようなものかを見てみましょう。
# 深色主题
mpl_style(dark=True)
# 折线图
plt.plot(x, y, marker='o')
plt.plot(x, y2, marker='o')
# 坐标轴名称
plt.xlabel('X')
plt.ylabel('Y')
# 显示
plt.show()
上記のコードを実行すると、以下のグラフが得られます。
このライブラリのプロット スタイルは、Matplotx で作成されたプロットと比較してわずかにトーンダウンしています。
ただし、特に光をテーマにした描画では、もう少しプロフェッショナルな印象を受けます。プロフェッショナルなプレゼンテーションやトレーニング コースの資料での使用に最適です。
04 科学図表
科学雑誌や会議の記事を書くときは、明確でシンプル、そして解釈しやすい図を作成することが重要です。
Nature などの一部のジャーナルでは、読者が理解しにくいグラフィックを簡略化するために固定スタイルを必要とします。
ここで、SciencePlots ライブラリが登場します。一般的な科学雑誌スタイルの図を生成するためによく使用され、図の作成がはるかに簡単になります。
このライブラリの優れた点の 1 つは、白黒での印刷に適した図を作成できることです。これは研究者の間では今でも一般的な方法です。これにより、線のスタイルを変更したり、カテゴリ データの散布図上に異なる形状が存在するようにしたりすることで、線を簡単に区別できるようになります。
SciencePlots で利用できるその他のスタイルを調べたい場合は、その GitHub にアクセスしてください。
住所:
https://github.com/garrettj403/SciencePlots/wiki/ギャラリー
SciencePlots ライブラリを実行するには、コンピュータに LaTeX がインストールされている必要があります。LaTex の詳細とインストール方法については、以下のアドレスを参照してください。
アドレス: https://www.latex-project.org/get/
ライブラリをインストールして LaTeX をセットアップした後、次のコードを使用して科学グラフを作成できます。
import scienceplots
with plt.style.context(['science', 'high-vis']):
# 新建画布
plt.figure(figsize=(6, 6))
# 折线图
plt.plot(x, y, marker='o', label='Line 1')
plt.plot(x, y2, marker='o', label='Line 2')
# 坐标轴名称
plt.xlabel('X')
plt.ylabel('Y')
# 图例
plt.legend()
# 显示
plt.show()
上記のコードを実行すると、ジャーナル出版物に最適な次のグラフが得られます。
IEEE スタイルがどのようなものかを見てみましょう。パラメータを変更することで作成できます。
with plt.style.context(['science', 'ieee']):
上のグラフとは少し異なり、色も変わっていますが、科学雑誌としては見栄えの良いグラフです。
これは学術研究に従事する学生にとって非常に役立ちます。
SciencePlots を使用すると、サイズ、色、線のスタイルを調整する手間が省けます。
05 まとめ
この記事では、matplotlib チャートを次のレベルに引き上げることができる 4 つの非常に便利な matplotlib Python ライブラリについて説明しました。
これらの各ライブラリは、プロットに独自のスタイルを提供します。
これらのスタイルは優れたクリエイティブなビジュアライゼーションを実現しますが、視聴者を考慮する必要があります。
優れたデータ ビジュアルを作成する最大のポイントは、メッセージを理解しやすくし、可能な限り最良の方法でストーリーを共有することです。