<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>可視化 | DL FreeTime</title>
	<atom:link href="https://www.ct-innovation.blog/dl-freetime/tag/visualize/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.ct-innovation.blog/dl-freetime</link>
	<description>Start studying deep learning in my Free time</description>
	<lastBuildDate>Thu, 18 Apr 2024 07:23:09 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-cooltext289278806579247-32x32.png</url>
	<title>可視化 | DL FreeTime</title>
	<link>https://www.ct-innovation.blog/dl-freetime</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>Seabornの応用：displotを使いこなす &#8211; 見やすく効果的な分布データの可視化（二変量）</title>
		<link>https://www.ct-innovation.blog/dl-freetime/programming/python/2514/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/programming/python/2514/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Wed, 10 Apr 2024 13:48:53 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[seaborn]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[BI]]></category>
		<category><![CDATA[displot]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[データ解析]]></category>
		<category><![CDATA[可視化]]></category>
		<guid isPermaLink="false">https://www.ct-innovation.blog/dl-freetime/?p=2514</guid>

					<description><![CDATA[Pythonのデータ可視化ライブラリSeabornは、データ分析の効率とわかりやすさを格段に高めてくれます。その中でもdisplotは、分布データの視覚化に特化した非常に便利な機能です。本記事では、displotの中でも [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonのデータ可視化ライブラリSeabornは、データ分析の効率とわかりやすさを格段に高めてくれます。その中でもdisplotは、分布データの視覚化に特化した非常に便利な機能です。本記事では、displotの中でも<span class="marker-under-blue">二変量</span>での可視化について解説していきます。</p>



<p class="wp-block-paragraph"><span class="marker-under">単変量</span>での描画については以前の記事を参照してください。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-prev">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/programming/python/2450/" title="Seabornの応用：displotを使いこなす - 見やすく効果的な分布データの可視化（単変量）" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img fetchpriority="high" decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-320x180.jpg 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-300x168.jpg 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-768x431.jpg 768w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-240x135.jpg 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-640x360.jpg 640w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123.jpg 780w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">Seabornの応用：displotを使いこなす - 見やすく効果的な分布データの可視化（単変量）</div><div class="blogcard-snippet internal-blogcard-snippet">この記事では、Seabornのdisplotを使用してカテゴリデータを視覚化する方法について解説しました。displotを使うことで、データセット内の分布データを理解するのに役立ちます。データの可視化における重要性やSeabornのdisplotがその役割を果たす方法について述べ、読者がデータ解析や洞察を得る際にこの強力なツールを活用することの重要性を強調しました。読者がこの記事を通じてdisplotの基本的な使い方を理解し、さらに応用的なプロットの作成やデータ解析に活かすことができれば幸いです。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2024.04.05</div></div></div></div></a>
</div>



<span id="more-2514"></span>



<h2 class="wp-block-heading">displotとは？</h2>



<p class="wp-block-paragraph">displotはSeabornライブラリの中で、2次元の分布を可視化するための便利な関数です。この関数は、ヒストグラムや密度曲線を描画することができ、それらを美しく見栄えの良いグラフにするためのオプションが多数用意されています。以下にdisplotの基本的な使い方と主要なパラメータについて説明します。</p>



<h3 class="wp-block-heading">2変量分布とは</h3>



<p class="wp-block-paragraph"> 2変量分布とは、2つの確率変数の同時分布を表したものです。単に2つのヒストグラムを並べるのではなく、2変数間の相関関係なども表現されます。</p>



<h2 class="wp-block-heading">displotの種類</h2>



<p class="wp-block-paragraph">分布プロットには、主に2つの種類があります。これに一つのオプションが追加できます。</p>



<ol class="wp-block-list">
<li>histplot() (with kind=&#8221;hist&#8221;; the default)</li>



<li>kdeplot() (with kind=&#8221;kde&#8221;)</li>
</ol>



<h2 class="wp-block-heading">データの準備</h2>



<p class="wp-block-paragraph">今回は、seabornでサンプルとして準備されているデータを呼び出して使用します。</p>



<pre class="wp-block-code python"><code>import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("penguins")</code></pre>



<h3 class="wp-block-heading">すべてに共通の引数</h3>



<ul class="wp-block-list">
<li>data: プロットするデータのデータフレーム</li>



<li>x: x軸のカテゴリデータの列名</li>



<li>y: y軸のカテゴリデータの列名</li>
</ul>



<h2 class="wp-block-heading">histplot：<span class="marker-under">ヒストグラム</span></h2>



<h3 class="wp-block-heading">histplot()の実装</h3>



<p class="wp-block-paragraph">ヒストグラムは、データの値の出現頻度を高さで表すグラフです。横軸はデータの値を表し、縦軸は各区間の値の出現回数(密度や確率に変換することも可能)を表します。</p>



<ul class="wp-block-list">
<li>データを区間(ビン)に分割し、各ビンの値の出現回数をカウントします。</li>



<li>ビンの幅が狭いほど詳細な分布を捉えられますが、過度に狭いと雑音が目立ちます。</li>



<li>カウント数を色の濃さでヒートマップ的に表現します。</li>
</ul>



<p class="wp-block-paragraph">ヒストグラムは分布の概形をパッと見て把握できる直感的なグラフです。</p>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.displot(data, x="bill_length_mm", <strong><em>y="bill_depth_mm"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="484" height="483" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142407.png" alt="" class="wp-image-2566" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142407.png 484w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142407-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142407-150x150.png 150w" sizes="(max-width: 484px) 100vw, 484px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<h5 class="wp-block-heading">binwidth</h5>



<p class="wp-block-paragraph">データを区間(ビン)に分割するサイズを変更できる、ただしあまり幅を大きくとりすぎると特徴をうまく捉えられないので注意すること。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="bill_length_mm", y="bill_depth_mm",<strong><em> binwidth=(2, 2)</em></strong>)
sns.displot(data, x="bill_length_mm", y="bill_depth_mm",<strong><em> binwidth=(1, .5)</em></strong>)</code></pre>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="485" height="482" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143046.png" alt="" class="wp-image-2570" style="width:400px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143046.png 485w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143046-300x298.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143046-150x150.png 150w" sizes="(max-width: 485px) 100vw, 485px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="485" height="485" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143132.png" alt="" class="wp-image-2571" style="width:400px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143132.png 485w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143132-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143132-150x150.png 150w" sizes="(max-width: 485px) 100vw, 485px" /></figure>
</div>
</div>



<h5 class="wp-block-heading">hue</h5>



<p class="wp-block-paragraph">ここに設定した列名のカテゴリに応じて色分けを行うことができる。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="bill_length_mm", y="bill_depth_mm", <strong><em>hue="species"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="609" height="485" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142421.png" alt="" class="wp-image-2567" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142421.png 609w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142421-300x239.png 300w" sizes="(max-width: 609px) 100vw, 609px" /></figure>



<h5 class="wp-block-heading">col</h5>



<p class="wp-block-paragraph">各バーを重ねたり、積み重ねたりする代わりに、サブプロットとして別のグラフに分けて表示することも可能です。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", y="bill_depth_mm", <strong><em>col="species"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="1484" height="489" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143416.png" alt="" class="wp-image-2572" style="width:800px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143416.png 1484w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143416-300x99.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143416-1024x337.png 1024w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143416-768x253.png 768w" sizes="(max-width: 1484px) 100vw, 1484px" /></figure>



<p class="wp-block-paragraph">その他オプションによって、正規化することで観測を助ける方法もあります。</p>



<h2 class="wp-block-heading">kdeplot：<span class="marker-under">カーネル密度推定</span></h2>



<h3 class="wp-block-heading">kdeplot()の実装</h3>



<p class="wp-block-paragraph">密度曲線は、カーネル密度推定(Kernel Density Estimation: KDE)によってデータの確率密度関数を滑らかな曲線で描画します。</p>



<ul class="wp-block-list">
<li>カーネル関数を使って各データ点の周りに滑らかな曲線を重ね合わせ、密度曲線を推定します。</li>



<li>ヒストグラムに比べてビン幅の設定に左右されない滑らかな分布を表せます。</li>



<li>等高線は密度の<em>等比例</em>で描画されます。</li>
</ul>



<p class="wp-block-paragraph">密度曲線は連続的なデータ分布をなめらかに可視化できる利点があります。</p>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.displot(data, x="bill_length_mm", y="bill_depth_mm", <strong><em>kind="kde"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="484" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142437.png" alt="" class="wp-image-2568" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142437.png 484w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142437-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142437-150x150.png 150w" sizes="(max-width: 484px) 100vw, 484px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<p class="wp-block-paragraph">様々なオプションについては、histplotと同じのものが非常に多いので特に挙動が変わるもの独自のものにのみフォーカスすることにします。</p>



<h5 class="wp-block-heading">hue</h5>



<p class="wp-block-paragraph">ここに設定した列名のカテゴリに応じて色分けを行うことができる。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="bill_length_mm", y="bill_depth_mm", kind="kde",<strong><em> hue="species"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="609" height="487" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142534.png" alt="" class="wp-image-2569" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142534.png 609w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142534-300x240.png 300w" sizes="(max-width: 609px) 100vw, 609px" /></figure>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">displotは、データの分布を可視化するための強力なツールであり、様々な種類のグラフを簡単に作成できることがわかりました。適切に使用することで、データの特徴や傾向を把握し、洞察を得ることができます。</p>



<p class="wp-block-paragraph"><div class="product-item-box amazon-item-box no-icon product-item-error cf"><div><a rel="nofollow noopener" target="_blank" href="https://www.amazon.co.jp/exec/obidos/ASIN/4798055433/lightstry-22/">Amazonで詳細を見る</a></div></div></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/programming/python/2514/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Seabornの応用：displotを使いこなす &#8211; 見やすく効果的な分布データの可視化（単変量）</title>
		<link>https://www.ct-innovation.blog/dl-freetime/programming/python/2450/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/programming/python/2450/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Fri, 05 Apr 2024 08:56:33 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[seaborn]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[BI]]></category>
		<category><![CDATA[displot]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[データ解析]]></category>
		<category><![CDATA[可視化]]></category>
		<guid isPermaLink="false">https://www.ct-innovation.blog/dl-freetime/?p=2450</guid>

					<description><![CDATA[Pythonのデータ可視化ライブラリSeabornは、データ分析の効率とわかりやすさを格段に高めてくれます。その中でもdisplotは、分布データの視覚化に特化した非常に便利な機能です。本記事では、displotの基本的 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonのデータ可視化ライブラリSeabornは、データ分析の効率とわかりやすさを格段に高めてくれます。その中でもdisplotは、分布データの視覚化に特化した非常に便利な機能です。本記事では、displotの基本的な使い方から応用まで、実例を交えながら解説していきます。</p>



<p class="wp-block-paragraph">カテゴリデータの可視化についてはこちら</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/programming/python/2387/" title="Seabornの応用：catplotを使いこなす - 見やすく効果的なカテゴリデータの可視化" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-320x180.jpg 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-300x168.jpg 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-768x431.jpg 768w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-240x135.jpg 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-640x360.jpg 640w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123.jpg 780w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">Seabornの応用：catplotを使いこなす - 見やすく効果的なカテゴリデータの可視化</div><div class="blogcard-snippet internal-blogcard-snippet">この記事では、Seabornのcatplotを使用してカテゴリデータを視覚化する方法について解説しました。catplotを使うことで、データセット内のカテゴリごとのパターンや関係性を理解するのに役立ちます。データの可視化における重要性やSeabornのcatplotがその役割を果たす方法について述べ、読者がデータ解析や洞察を得る際にこの強力なツールを活用することの重要性を強調しました。読者がこの記事を通じてcatplotの基本的な使い方を理解し、さらに応用的なプロットの作成やデータ解析に活かすことができれば幸いです。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2024.04.04</div></div></div></div></a>
</div>



<span id="more-2450"></span>



<h2 class="wp-block-heading">displotとは？</h2>



<p class="wp-block-paragraph">displotはSeabornライブラリの中で、1次元の分布を可視化するための便利な関数です。この関数は、ヒストグラムや密度曲線を描画することができ、それらを美しく見栄えの良いグラフにするためのオプションが多数用意されています。以下にdisplotの基本的な使い方と主要なパラメータについて説明します。</p>



<h2 class="wp-block-heading">displotの種類</h2>



<p class="wp-block-paragraph">分布プロットには、主に3つの種類があります。これに一つのオプションが追加できます。</p>



<ol class="wp-block-list">
<li>histplot() (with kind=&#8221;hist&#8221;; the default)</li>



<li>kdeplot() (with kind=&#8221;kde&#8221;)</li>



<li>ecdfplot() (with kind=&#8221;ecdf&#8221;)</li>
</ol>



<ul class="wp-block-list">
<li>rugplot() (with rug=True)</li>
</ul>



<h2 class="wp-block-heading">データの準備</h2>



<p class="wp-block-paragraph">今回は、seabornでサンプルとして準備されているデータを呼び出して使用します。</p>



<pre class="wp-block-code python"><code>import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("penguins")</code></pre>



<h3 class="wp-block-heading">すべてに共通の引数</h3>



<ul class="wp-block-list">
<li>data: プロットするデータのデータフレーム</li>



<li>x: x軸のカテゴリデータの列名</li>



<li>rug: Trueを指定すると、x軸上にデータ点を小さな垂線で示します。</li>
</ul>



<h2 class="wp-block-heading">histplot：<span class="marker-under">ヒストグラム</span></h2>



<h3 class="wp-block-heading">histplot()の実装</h3>



<p class="wp-block-paragraph">ヒストグラムは、データの値の出現頻度を高さで表すグラフです。横軸はデータの値を表し、縦軸は各区間の値の出現回数(密度や確率に変換することも可能)を表します。</p>



<ul class="wp-block-list">
<li>データを区間(ビン)に分割し、各ビンの値の出現回数をカウントします。</li>



<li>ビンの幅が狭いほど詳細な分布を捉えられますが、過度に狭いと雑音が目立ちます。</li>



<li>ビン数が多すぎると分布の大まかな形を捉えにくくなります。</li>
</ul>



<p class="wp-block-paragraph">ヒストグラムは分布の概形をパッと見て把握できる直感的なグラフです。</p>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm")</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="489" height="488" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175417.png" alt="" class="wp-image-2502" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175417.png 489w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175417-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175417-150x150.png 150w" sizes="(max-width: 489px) 100vw, 489px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<h5 class="wp-block-heading">binwidth</h5>



<p class="wp-block-paragraph">データを区間(ビン)に分割するサイズを変更できる、ただしあまり幅を大きくとりすぎると特徴をうまく捉えられないので注意すること。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", <strong><em>binwidth=20</em></strong>)
sns.displot(data, x="flipper_length_mm", <strong><em>binwidth=3</em></strong>)</code></pre>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="485" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180642.png" alt="" class="wp-image-2503" style="width:400px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180642.png 485w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180642-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180642-150x150.png 150w" sizes="(max-width: 485px) 100vw, 485px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="486" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180659.png" alt="" class="wp-image-2504" style="width:400px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180659.png 486w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180659-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180659-150x150.png 150w" sizes="(max-width: 486px) 100vw, 486px" /></figure>
</div>
</div>



<h5 class="wp-block-heading">bins</h5>



<p class="wp-block-paragraph">データを区間(ビン)に分割する個数を変更できる、個数から幅を逆算される</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", <strong><em>bins=15</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="488" height="488" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-181449.png" alt="" class="wp-image-2505" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-181449.png 488w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-181449-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-181449-150x150.png 150w" sizes="(max-width: 488px) 100vw, 488px" /></figure>



<h5 class="wp-block-heading">hue</h5>



<p class="wp-block-paragraph">ここに設定した列名のカテゴリに応じて色分けを行うことができる。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", <strong><em>hue="species"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="613" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-181818.png" alt="" class="wp-image-2506" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-181818.png 613w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-181818-300x237.png 300w" sizes="(max-width: 613px) 100vw, 613px" /></figure>



<h5 class="wp-block-heading">multiple</h5>



<p class="wp-block-paragraph">各バーを重ねる代わりに、バーを「積み重ねる」こともできます。このプロットでは、アウトラインは、変数が1つだけのプロットと一致します。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", hue="species", <strong><em>multiple="stack"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="610" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182448.png" alt="" class="wp-image-2507" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182448.png 610w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182448-300x238.png 300w" sizes="(max-width: 610px) 100vw, 610px" /></figure>



<h5 class="wp-block-heading">col</h5>



<p class="wp-block-paragraph">各バーを重ねたり、積み重ねたりする代わりに、サブプロットとして別のグラフに分けて表示することも可能です。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", <strong><em>col="species"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="1485" height="487" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182845.png" alt="" class="wp-image-2508" style="width:800px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182845.png 1485w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182845-300x98.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182845-1024x336.png 1024w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182845-768x252.png 768w" sizes="(max-width: 1485px) 100vw, 1485px" /></figure>



<p class="wp-block-paragraph">その他オプションによって、正規化することで観測を助ける方法もあります。</p>



<h2 class="wp-block-heading">kdeplot：<span class="marker-under">カーネル密度推定</span></h2>



<h3 class="wp-block-heading">kdeplot()の実装</h3>



<p class="wp-block-paragraph">密度曲線は、カーネル密度推定(Kernel Density Estimation: KDE)によってデータの確率密度関数を滑らかな曲線で描画します。</p>



<ul class="wp-block-list">
<li>カーネル関数を使って各データ点の周りに滑らかな曲線を重ね合わせ、密度曲線を推定します。</li>



<li>ヒストグラムに比べてビン幅の設定に左右されない滑らかな分布を表せます。</li>



<li>カーネルの種類やカーネル幅のパラメータによって曲線の形状が変わります。</li>
</ul>



<p class="wp-block-paragraph">密度曲線は連続的なデータ分布をなめらかに可視化できる利点があります。</p>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", <strong><em>kind="kde"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="487" height="483" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175430.png" alt="" class="wp-image-2500" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175430.png 487w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175430-300x298.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175430-150x150.png 150w" sizes="(max-width: 487px) 100vw, 487px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<p class="wp-block-paragraph">様々なオプションについては、histplotと同じのものが非常に多いので特に挙動が変わるもの独自のものにのみフォーカスすることにします。</p>



<h5 class="wp-block-heading"><strong><em>bw_adjust</em></strong></h5>



<p class="wp-block-paragraph">ヒストグラムのビン幅と同様に、KDEがデータを正確に表現できるかどうかは、平滑化帯域幅の選択に依存します。帯域幅を調整できます。やりすぎには気を付けましょう。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", kind="kde", <strong><em>bw_adjust=.25</em></strong>)
sns.displot(data, x="flipper_length_mm", kind="kde", <strong><em>bw_adjust=3</em></strong>)</code></pre>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="490" height="490" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード.png" alt="" class="wp-image-2509" style="width:400px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード.png 490w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-150x150.png 150w" sizes="(max-width: 490px) 100vw, 490px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="489" height="489" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-1.png" alt="" class="wp-image-2510" style="width:400px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-1.png 489w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-1-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-1-150x150.png 150w" sizes="(max-width: 489px) 100vw, 489px" /></figure>
</div>
</div>



<h5 class="wp-block-heading">hue</h5>



<p class="wp-block-paragraph">ここに設定した列名のカテゴリに応じて色分けを行うことができる。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", kind="kde", <strong><em>hue="species"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="615" height="489" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-2.png" alt="" class="wp-image-2511" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-2.png 615w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-2-300x239.png 300w" sizes="(max-width: 615px) 100vw, 615px" /></figure>



<h2 class="wp-block-heading">ecdfplot：<span class="marker-under">累積分布関数</span></h2>



<h3 class="wp-block-heading">ecdfplot() の実装</h3>



<p class="wp-block-paragraph">累積分布関数(ECDF)は、データ点がその値以下になる割合(累積確率)を階段状のグラフで表します。</p>



<ul class="wp-block-list">
<li>データを小さい順に並び替え、各値の累積確率を計算してプロットします。</li>



<li>縦軸は累積確率(0から1)を表します。</li>



<li>データの上側と下側の確率を眺めることができます。</li>
</ul>



<p class="wp-block-paragraph">ECDFは、データの全体的な分布や特定の値を下回る確率を視覚的に把握するのに役立ちます。</p>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm",<strong><em> kind="ecdf"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="487" height="487" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175442.png" alt="" class="wp-image-2501" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175442.png 487w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175442-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175442-150x150.png 150w" sizes="(max-width: 487px) 100vw, 487px" /></figure>



<h5 class="wp-block-heading">hue</h5>



<p class="wp-block-paragraph">ここに設定した列名のカテゴリに応じて色分けを行うことができる。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", kind="ecdf", <strong><em>hue="species"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="615" height="490" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-3.png" alt="" class="wp-image-2512" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-3.png 615w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-3-300x239.png 300w" sizes="(max-width: 615px) 100vw, 615px" /></figure>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">displotは、データの分布を可視化するための強力なツールであり、様々な種類のグラフを簡単に作成できることがわかりました。適切に使用することで、データの特徴や傾向を把握し、洞察を得ることができます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/programming/python/2450/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Seabornの応用：catplotを使いこなす &#8211; 見やすく効果的なカテゴリデータの可視化</title>
		<link>https://www.ct-innovation.blog/dl-freetime/programming/python/2387/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/programming/python/2387/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Thu, 04 Apr 2024 08:36:06 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[seaborn]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[BI]]></category>
		<category><![CDATA[pairplot]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[データ解析]]></category>
		<category><![CDATA[可視化]]></category>
		<guid isPermaLink="false">https://www.ct-innovation.blog/dl-freetime/?p=2387</guid>

					<description><![CDATA[Pythonのデータ可視化ライブラリSeabornは、データ分析の効率とわかりやすさを格段に高めてくれます。その中でもcatplotは、カテゴリデータの視覚化に特化した非常に便利な機能です。本記事では、catplotの基 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonのデータ可視化ライブラリSeabornは、データ分析の効率とわかりやすさを格段に高めてくれます。その中でもcatplotは、カテゴリデータの視覚化に特化した非常に便利な機能です。本記事では、catplotの基本的な使い方から応用まで、実例を交えながら解説していきます。</p>



<span id="more-2387"></span>



<h2 class="wp-block-heading">Catplotとは？</h2>



<p class="wp-block-paragraph">Catplotは、カテゴリ型の変数を含むデータセットの関係を可視化するためのSeabornの機能です。カテゴリ型の変数とは、離散的な値を持つ変数のことであり、性別や地域などが代表的な例です。Catplotは、カテゴリごとにデータを分析し、パターンや相関関係を可視化するのに役立ちます。</p>



<h2 class="wp-block-heading">Catplotの種類</h2>



<p class="wp-block-paragraph">カテゴリプロットでは、主に3つの種類があります。そこから表現方法の違いで細分化すると8種類となります。</p>



<ol class="wp-block-list">
<li>Categorical scatterplots：<span class="marker-under">散布図</span>
<ul class="wp-block-list">
<li>stripplot() (with kind=&#8221;strip&#8221;; the default)</li>



<li>swarmplot() (with kind=&#8221;swarm&#8221;)</li>
</ul>
</li>



<li>Categorical distribution plots：<span class="marker-under">分布図</span>
<ul class="wp-block-list">
<li>boxplot() (with kind=&#8221;box&#8221;)</li>



<li>boxenplot() (with kind=&#8221;boxen&#8221;)</li>



<li>violinplot() (with kind=&#8221;violin&#8221;)</li>
</ul>
</li>



<li>Categorical estimate plots：<span class="marker-under">推定プロット</span>
<ul class="wp-block-list">
<li>barplot() (with kind=&#8221;bar&#8221;)</li>



<li>countplot() (with kind=&#8221;count&#8221;)</li>



<li>pointplot() (with kind=&#8221;point&#8221;)</li>
</ul>
</li>
</ol>



<h2 class="wp-block-heading">データの準備</h2>



<p class="wp-block-paragraph">今回は、seabornでサンプルとして準備されているデータを呼び出して使用します。</p>



<pre class="wp-block-code python"><code>import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")</code></pre>



<h3 class="wp-block-heading">すべてに共通の引数</h3>



<ul class="wp-block-list">
<li>data: プロットするデータのデータフレーム</li>



<li>x: x軸のカテゴリデータの列名</li>



<li>y: y軸のデータの列名</li>



<li>row/col: 行列方向にプロットを小分けする変数の列名</li>
</ul>



<h2 class="wp-block-heading">Categorical scatterplots：<span class="marker-under">散布図</span></h2>



<h3 class="wp-block-heading">stripplot()の実装</h3>



<p class="wp-block-paragraph">Strip Plotは、カテゴリごとのデータの分布や個々のデータ点を視覚的に表現するのに役立ちます。</p>



<ol class="wp-block-list">
<li><strong>個々のデータ点の表示</strong>: 各データポイントがそのままプロットされ、その分布が視覚的にわかりやすくなります。これにより、データの分散や外れ値などを素早く把握することができます。</li>



<li><strong>カテゴリごとの比較</strong>: 異なるカテゴリに属するデータの分布を比較するのに適しています。カテゴリごとにデータポイントの密度や分布を比較することができます。</li>



<li><strong>Jittering（ジッタリング）</strong>: データポイントが重なる場合、ランダムなノイズを追加して、データの重なりを解消することができます。これにより、データの分布がより明確に表示されます。</li>
</ol>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code"><code>sns.catplot(x="day", y="total_bill", data=tips);</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="505" height="489" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-144148.png" alt="" class="wp-image-2388" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-144148.png 505w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-144148-300x290.png 300w" sizes="(max-width: 505px) 100vw, 505px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<h5 class="wp-block-heading">jitter</h5>



<p class="wp-block-paragraph">一つの軸に対してプロットする際の横（縦）方向のずれの値を設定できる箇所だが、Falseを置くことでずれをなくすことも可能</p>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill", <strong><em>jitter=False</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="501" height="485" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-145805.png" alt="" class="wp-image-2390" style="width:499px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-145805.png 501w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-145805-300x290.png 300w" sizes="(max-width: 501px) 100vw, 501px" /></figure>



<h5 class="wp-block-heading">hue</h5>



<p class="wp-block-paragraph">ここに設定した列名のカテゴリに応じて色分けを行うことができる。</p>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill", <strong><em>hue="sex"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="583" height="490" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-150114.png" alt="" class="wp-image-2391" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-150114.png 583w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-150114-300x252.png 300w" sizes="(max-width: 583px) 100vw, 583px" /></figure>



<h5 class="wp-block-heading">dodge</h5>



<p class="wp-block-paragraph">上記のhueで色分けを行った場合に、そのカテゴリごとに軸を避けて描画できます。</p>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill", hue='sex', <strong><em>dodge=True</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="579" height="483" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-150458.png" alt="" class="wp-image-2392" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-150458.png 579w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-150458-300x250.png 300w" sizes="(max-width: 579px) 100vw, 579px" /></figure>



<p class="wp-block-paragraph">これ以外にも今縦に積み上げているものをそのまま90度倒して横方向にするオプションに加え、プロットの色を指定したりサイズを指定することが可能です。</p>



<h3 class="wp-block-heading">swarmplot()の実装</h3>



<p class="wp-block-paragraph">Strip Plotと同様に、個々のデータポイントをプロットしますが、Swarm Plotではデータポイント同士が重ならないように配置されます。しばしば「ミツバチの群れ」と称されるような見た目にかわります。</p>



<ol class="wp-block-list">
<li><strong>個々のデータ点の表示</strong>: 各データポイントがそのままプロットされ、その分布が視覚的にわかりやすくなります。これにより、データの分散や外れ値などを素早く把握することができます。</li>



<li><strong>データポイントの重なり防止</strong>: データポイント同士が重ならないように配置されます。これにより、データポイントの密度や分布をより正確に理解することができます。</li>



<li><strong>カテゴリごとの比較</strong>: 異なるカテゴリに属するデータの分布を比較するのに適しています。カテゴリごとにデータポイントの密度や分布を比較することができます。</li>
</ol>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1-e1709253991344.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">あまりに多いデータセットには向いていないようです。公式がアナウンスしています。</p>
</div></div>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill", hue="sex", <strong><em>kind="swarm"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="582" height="486" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-151310.png" alt="" class="wp-image-2393" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-151310.png 582w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-151310-300x251.png 300w" sizes="(max-width: 582px) 100vw, 582px" /></figure>



<p class="wp-block-paragraph">様々なオプションについては、stripplotと同じのものが非常に多いので割愛します。</p>



<h2 class="wp-block-heading">Categorical distribution plots：<span class="marker-under">分布図</span></h2>



<h3 class="wp-block-heading">boxplot()の実装</h3>



<p class="wp-block-paragraph">データセットの中央値、四分位数、外れ値などの統計的特性を可視化するのに役立ちます。以下に、Box Plotの主な特徴と使用方法を説明します。</p>



<ol class="wp-block-list">
<li><strong>中央値と四分位範囲の表示</strong>: 箱の中央にはデータの中央値が表示され、箱の上下の端には第1四分位数（25パーセンタイル）と第3四分位数（75パーセンタイル）が表示されます。</li>



<li><strong>箱の高さ</strong>: 箱の高さは、データの第1四分位数から第3四分位数までの範囲であり、データの中央50%を表します。箱の高さが短いほどデータのばらつきが小さいことを意味します。</li>



<li><strong>ひげの表示</strong>: 箱の上下に延びる線（ひげ）は、データの範囲を表します。通常、ひげの長さは第1四分位数から1.5倍の四分位範囲と第3四分位数から1.5倍の四分位範囲の外にあるデータポイントまで伸びます。外れ値はひげの外側に単独で表示されます。</li>



<li><strong>外れ値の表示</strong>: 箱ひげ図は、データの中にある外れ値を視覚的に特定するのに役立ちます。外れ値は通常、ひげの外側に単独でプロットされます。</li>
</ol>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code"><code>sns.catplot(x="day", y="total_bill",<strong><em> kind="box"</em></strong>, data=tips)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="506" height="488" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-160147.png" alt="" class="wp-image-2395" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-160147.png 506w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-160147-300x289.png 300w" sizes="(max-width: 506px) 100vw, 506px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<p class="wp-block-paragraph">様々なオプションについては、stripplotと同じのものが非常に多いので特に挙動が変わるもの独自のものにのみフォーカスすることにします。</p>



<h5 class="wp-block-heading">hue</h5>



<p class="wp-block-paragraph">ここに設定した列名のカテゴリに応じてそれぞれを箱ひげ図にして色分け描画できる。</p>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill", <strong><em>hue="smoker"</em></strong>, kind="box")</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="555" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-160200.png" alt="" class="wp-image-2394" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-160200.png 555w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-160200-300x262.png 300w" sizes="(max-width: 555px) 100vw, 555px" /></figure>



<h5 class="wp-block-heading">fill</h5>



<p class="wp-block-paragraph">塗りつぶしを行うかどうかを設定できます。</p>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill", hue="smoker", kind="box", <strong><em>fill=False</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="557" height="487" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-163315.png" alt="" class="wp-image-2397" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-163315.png 557w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-163315-300x262.png 300w" sizes="(max-width: 557px) 100vw, 557px" /></figure>



<h3 class="wp-block-heading">boxenplot()の実装</h3>



<p class="wp-block-paragraph">Boxen Plotは、データの分布や中央値、四分位数などの統計的特性を視覚的に表現するのに役立ちます。以下のような特徴があります。</p>



<ol class="wp-block-list">
<li><strong>拡張された箱ひげ図</strong>: 通常の箱ひげ図よりも多くの情報を提供します。特に、中央値や四分位数だけでなく、さらに深い統計情報を表示します。</li>



<li><strong>サブグループの可視化</strong>: データをサブグループに分割して比較する場合に便利です。これにより、異なるカテゴリや条件におけるデータの分布を比較することができます。</li>



<li><strong>データの密度の表示</strong>: データの分布に関する情報をより詳細に知ることができます。特に、データの密度が高い領域や外れ値が存在する領域を明確に表示します。</li>
</ol>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code"><code>sns.catplot(x="day", y="total_bill",<strong><em> kind="boxen"</em></strong>, data=tips)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="507" height="488" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-164337.png" alt="" class="wp-image-2398" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-164337.png 507w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-164337-300x289.png 300w" sizes="(max-width: 507px) 100vw, 507px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<p class="wp-block-paragraph">様々なオプションについては、stripplotと同じのものが非常に多いので特に挙動が変わるもの独自のものにのみフォーカスすることにします。</p>



<h5 class="wp-block-heading">saturation</h5>



<p class="wp-block-paragraph">グラフを描画する際に彩度を下げた方が見栄えがよくなることがよくあります、そういったとき、塗りつぶしの色を描画する元の彩度の比率で指定することができます。</p>



<pre class="wp-block-code python"><code>sns.catplot(x="day", y="total_bill", kind="boxen", data=tips, <strong><em>saturation=.2</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="503" height="490" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-171731.png" alt="" class="wp-image-2399" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-171731.png 503w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-171731-300x292.png 300w" sizes="(max-width: 503px) 100vw, 503px" /></figure>



<h3 class="wp-block-heading">violinplot() の実装</h3>



<p class="wp-block-paragraph">バイオリンプロットは、データの分布形状や中央値、四分位範囲などの統計的特性を視覚的に表現するのに役立ちます。以下に、Violin Plotの主な特徴と使用方法を説明します。</p>



<ol class="wp-block-list">
<li><strong>カーネル密度推定</strong>: バイオリンプロットは、各データセットのカーネル密度推定を行い、データの分布をなめらかな曲線で表現します。これにより、データの分布形状が視覚的に把握できます。</li>



<li><strong>中央値と四分位範囲の表示</strong>: バイオリンプロットには、中央値や四分位範囲などの要約統計量が含まれており、各データセットの中央値と四分位範囲を示します。</li>



<li><strong>データの密度</strong>: バイオリンプロットの幅は、各データセットの密度を表します。幅が広いほどデータが集中していることを示し、幅が狭いほどデータが分散していることを示します。</li>



<li><strong>分布の比較</strong>: 複数のデータセットを同時にプロットすることで、異なるグループ間のデータ分布を比較することができます。</li>
</ol>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code"><code>sns.catplot(data=tips, x="total_bill", y="day", hue="sex", <em><strong>kind="violin"</strong></em>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="575" height="483" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-182341.png" alt="" class="wp-image-2403" style="width:570px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-182341.png 575w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-182341-300x252.png 300w" sizes="(max-width: 575px) 100vw, 575px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<p class="wp-block-paragraph">様々なオプションについては、stripplotと同じのものが非常に多いので特に挙動が変わるもの独自のものにのみフォーカスすることにします。</p>



<h5 class="wp-block-heading">split</h5>



<p class="wp-block-paragraph">バイオリンを上下に「分割」することも可能で、先ほどの二つのバイオリンプロットの上側を男性、下側を女性にすることでスペースをより効率的に使用できます。</p>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="total_bill", y="day", hue="sex", kind="violin", split=True)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="579" height="485" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-221843-e1709818254956.png" alt="" class="wp-image-2404" style="width:570px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-221843-e1709818254956.png 579w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-221843-e1709818254956-300x251.png 300w" sizes="(max-width: 579px) 100vw, 579px" /></figure>



<h5 class="wp-block-heading">inner</h5>



<p class="wp-block-paragraph">ヴァイオリン内部のデータ表現を変更できます。デフォルトは「box」で箱ひげ図が描画される、「point」「stick」で各測定値にポイントやラインを描画が可能であり、「quart」で四分位数を表示できます。</p>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="total_bill", y="day", hue="sex", kind="violin", split=True, <strong><em>inner='stick'</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="582" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-223035.png" alt="" class="wp-image-2405" style="width:570px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-223035.png 582w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-223035-300x249.png 300w" sizes="(max-width: 582px) 100vw, 582px" /></figure>



<h2 class="wp-block-heading">Categorical estimate plots：<span class="marker-under">推定プロット</span></h2>



<h3 class="wp-block-heading">barplot() の実装</h3>



<p class="wp-block-paragraph">Bar Plot（棒グラフ）は、カテゴリ別のデータを比較するために使用されるグラフィカルな手法です。カテゴリ別の数値データを棒状の縦棒で表現し、それらの高さを用いて相対的な値を比較します。以下に、Bar Plotの主な特徴と使用方法を説明します。</p>



<ol class="wp-block-list">
<li><strong>カテゴリ別の比較</strong>: Bar Plotは、異なるカテゴリのデータを簡単に比較できるようにします。例えば、商品カテゴリごとの売上や各月の売上など、カテゴリごとのデータを比較するのに適しています。</li>



<li><strong>相対的な大きさの視覚化</strong>: 棒の高さは、対応するカテゴリのデータの値を表します。高さが高いほど、そのカテゴリの値が大きいことを示します。</li>



<li><strong>複数の変数の比較</strong>: 複数のカテゴリや条件を含むデータセットの場合、複数の棒グラフを並べて表示することで、異なる条件やカテゴリ間の比較が容易になります。</li>
</ol>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill",<strong><em> kind="bar"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="498" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-225359.png" alt="" class="wp-image-2406" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-225359.png 498w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-225359-300x292.png 300w" sizes="(max-width: 498px) 100vw, 498px" /></figure>



<h3 class="wp-block-heading">countplot() の実装</h3>



<p class="wp-block-paragraph">Count Plotは、カテゴリごとのデータの出現回数を可視化するためのグラフです。各カテゴリに属するデータ点の数を棒グラフやヒストグラムの形式で表示し、カテゴリごとの頻度を比較します。主にカテゴリ型の変数の分布を理解するために使用されます。</p>



<ol class="wp-block-list">
<li><strong>カテゴリの頻度の比較</strong>: Count Plotは、異なるカテゴリのデータの出現回数を直感的に比較できるようにします。カテゴリごとの頻度の違いを視覚的に把握できます。</li>



<li><strong>データの集計と可視化</strong>: データセット内のカテゴリデータの出現回数を集計し、それを棒グラフやヒストグラムの形式で視覚化します。</li>



<li><strong>カテゴリ型変数の分析</strong>: 主にカテゴリ型の変数（例：性別、地域、カテゴリなど）の分布を分析するのに適しています。</li>
</ol>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", <strong><em>kind="count"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="501" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-231023.png" alt="" class="wp-image-2407" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-231023.png 501w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-231023-300x290.png 300w" sizes="(max-width: 501px) 100vw, 501px" /></figure>



<h3 class="wp-block-heading">pointplot() の実装</h3>



<p class="wp-block-paragraph">Point Plotは、カテゴリ変数と数値変数の関係を可視化するためのグラフです。各カテゴリの平均値や中央値などの集計値をポイントとしてプロットし、その間の信頼区間を線で表現します。Point Plotは、異なるカテゴリ間の数値の比較や傾向の把握に役立ちます。</p>



<ol class="wp-block-list">
<li><strong>カテゴリ間の数値比較</strong>: Point Plotは、カテゴリごとの数値の平均や中央値をポイントで示すことで、異なるカテゴリ間の数値の比較を容易にします。</li>



<li><strong>信頼区間の表示</strong>: ポイントの周りに表示される線は、信頼区間を表します。これにより、集計値のばらつきや統計的な信頼性を視覚的に評価できます。</li>



<li><strong>傾向の把握</strong>: カテゴリごとのポイントと信頼区間を比較することで、異なるカテゴリ間の傾向やパターンを把握するのに役立ちます。</li>
</ol>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill", <strong><em>kind="point"</em></strong>, hue="sex")</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="583" height="483" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-231939.png" alt="" class="wp-image-2408" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-231939.png 583w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-231939-300x249.png 300w" sizes="(max-width: 583px) 100vw, 583px" /></figure>



<h5 class="wp-block-heading">それぞれのスタイルを個別に変更する</h5>



<ol class="wp-block-list">
<li><strong>カラーマップの指定</strong>: paletteパラメータを使用して、辞書型で異なるカテゴリに対応する色を指定することができます。これにより、デフォルトの色以外の色を使用してプロットを作成できます。</li>



<li><strong>ラインスタイルの指定</strong>: linestylesパラメータを使用して、リスト型で異なるカテゴリに対応するラインのスタイルを指定することができます。</li>



<li><strong>マーカーの指定</strong>: markersパラメータを使用して、リスト型で異なるカテゴリに対応するマーカーを指定することができます。</li>
</ol>



<pre class="wp-block-code"><code>sns.catplot(
    data=tips, x="day", y="total_bill", kind="point", hue="sex",
<strong><em>    palette={"Male": "g", "Female": "m"},
    markers=&#91;"^", "o"], linestyles=&#91;"-", "--"]</em></strong>
)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="581" height="480" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-232341.png" alt="" class="wp-image-2409" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-232341.png 581w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-232341-300x248.png 300w" sizes="(max-width: 581px) 100vw, 581px" /></figure>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">Seabornのcatplotを使用することで、様々な種類のカテゴリデータを効果的に可視化することができます。散布図、分布図、推定プロットなど、さまざまな視覚化手法を使いこなし、データの特徴やパターンを理解しましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/programming/python/2387/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>matplotlibの応用: グラフを複数配置する</title>
		<link>https://www.ct-innovation.blog/dl-freetime/programming/python/2222/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/programming/python/2222/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Thu, 14 Mar 2024 15:17:03 +0000</pubDate>
				<category><![CDATA[matplotlib]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[subplot]]></category>
		<category><![CDATA[可視化]]></category>
		<category><![CDATA[複数]]></category>
		<guid isPermaLink="false">https://www.ct-innovation.blog/dl-freetime/?p=2222</guid>

					<description><![CDATA[本記事では、Pythonのデータ可視化ライブラリであるmatplotlibのsubplot機能に焦点を当て、その基本的な使い方や応用例を解説します。subplotを使用することで、1つの図に複数のプロットを配置して、デー [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">本記事では、Pythonのデータ可視化ライブラリであるmatplotlibのsubplot機能に焦点を当て、その基本的な使い方や応用例を解説します。subplotを使用することで、1つの図に複数のプロットを配置して、データの比較や関係性の可視化を容易に行うことができます。以下では、具体的なコード例を交えながら、subplotの使い方を詳しく解説します。</p>



<span id="more-2222"></span>



<h2 class="wp-block-heading">matplotlibとは</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">プログラミング言語Pythonおよびその科学計算用ライブラリNumPyのためのグラフ描画ライブラリである。オブジェクト指向のAPIを提供しており、様々な種類のグラフを描画する能力を持つ。描画できるのは主に2次元のプロットだが、3次元プロットの機能も追加されてきている。描画したグラフを各種形式の画像（各種ベクトル画像形式も含む）として保存することもできる（Wiki参照）</p>
<cite><a rel="noopener" target="_blank" href="https://ja.wikipedia.org/wiki/Matplotlib">matplotlib &#8211; Wikipedia</a></cite></blockquote>



<h2 class="wp-block-heading"><strong>subplotの基本的な使い方</strong></h2>



<p class="wp-block-paragraph">subplotを使用すると、1つの図内に複数のプロットを配置することができます。subplot関数は、行数、列数、およびプロットの位置を指定します。以下はその基本的な使い方です。</p>



<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt

# 2x2のサブプロットを作成し、1番目のサブプロットにプロットします
plt.subplot(2, 2, 1)
plt.plot(&#91;1, 2, 3, 4], &#91;1, 4, 9, 16], 'ro')  # 'ro'は赤い点を意味します

# 2x2のサブプロットを作成し、2番目のサブプロットにプロットします
plt.subplot(2, 2, 2)
plt.plot(&#91;1, 2, 3, 4], &#91;1, 4, 9, 16], 'b-')  # 'b-'は青い線を意味します

# 2x2のサブプロットを作成し、3番目のサブプロットにプロットします
plt.subplot(2, 2, 3)
plt.plot(&#91;1, 2, 3, 4], &#91;1, 4, 9, 16], 'g^')  # 'g^'は緑色の三角形を意味します

# 2x2のサブプロットを作成し、4番目のサブプロットにプロットします
plt.subplot(2, 2, 4)
plt.plot(&#91;1, 2, 3, 4], &#91;1, 4, 9, 16], 'c--')  # 'c--'はシアンの点線を意味します

plt.show()</code></pre>



<p class="wp-block-paragraph">上記のコードでは、4つのサブプロットが2&#215;2の配置で作成され、それぞれに異なるプロットが表示されます。各subplot関数の引数は、行数、列数、およびプロットの位置を指定します。たとえば、subplot(2, 2, 1)は2行2列のグリッド内の1番目の位置を指定します。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="540" height="406" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-002048.png" alt="" class="wp-image-2223" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-002048.png 540w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-002048-300x226.png 300w" sizes="(max-width: 540px) 100vw, 540px" /></figure>



<p class="wp-block-paragraph">問題なくプロットされてます。</p>



<h2 class="wp-block-heading">応用：三つのグラフを上に一つ下に二つ並べたい</h2>



<p class="wp-block-paragraph">上下に2つのグラフを配置する場合は、2行1列のサブプロットを作成する必要があります。ただ、下の行は2つの列に分割する必要があります。以下は、そのようなレイアウトを実現するためのコード例です。</p>



<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt
import numpy as np

# データを生成します
x = np.linspace(0, 2 * np.pi, 400)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)

# サブプロットを作成します
plt.subplot(2, 2, <strong><em>(1, 2)</em></strong>)  # 上に1つのグラフを配置するため、2x2のレイアウトで1番目と2番目の位置を指定します
plt.plot(x, y1, 'r-', label='Sine')  # サイン関数のプロット
plt.legend()  # 凡例を表示します

plt.subplot(2, 2, 3)  # 下に2つのグラフを配置するため、2x2のレイアウトで3番目の位置を指定します
plt.plot(x, y2, 'b--', label='Cosine')  # コサイン関数のプロット
plt.legend()  # 凡例を表示します

plt.subplot(2, 2, 4)  # 下に2つのグラフを配置するため、2x2のレイアウトで4番目の位置を指定します
plt.plot(x, y3, 'g-.', label='Tangent')  # タンジェント関数のプロット
plt.legend()  # 凡例を表示します

plt.tight_layout()  # レイアウトを整えます
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="629" height="464" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-002757.png" alt="" class="wp-image-2224" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-002757.png 629w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-002757-300x221.png 300w" sizes="(max-width: 629px) 100vw, 629px" /></figure>



<p class="wp-block-paragraph">subplot関数の引数には、行数、列数、およびプロットの位置を指定します。(1, 2)のように範囲を指定することで、複数の位置を1つのサブプロットとして扱うことができます。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">本記事では、matplotlibのsubplot機能について解説しました。subplotを使用することで、1つの図に複数のプロットを配置して、データの比較や関係性の可視化を容易に行うことができます。subplotはデータ解析や可視化において非常に便利なツールであり、ぜひ活用してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/programming/python/2222/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Seabornの基礎：データの可視化をより美しく、効果的に</title>
		<link>https://www.ct-innovation.blog/dl-freetime/kaggle/2209/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/kaggle/2209/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Fri, 16 Feb 2024 16:57:04 +0000</pubDate>
				<category><![CDATA[Kaggle]]></category>
		<category><![CDATA[matplotlib]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[seaborn]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[BI]]></category>
		<category><![CDATA[pairplot]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[データ解析]]></category>
		<category><![CDATA[可視化]]></category>
		<guid isPermaLink="false">https://www.ct-innovation.blog/dl-freetime/?p=2209</guid>

					<description><![CDATA[データの可視化は、データ解析の重要なステップです。PythonのSeabornライブラリは、Matplotlibに基づいており、美しいデフォルトスタイルや統計データの視覚化に特化した機能を提供しています。この記事では、S [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">データの可視化は、データ解析の重要なステップです。PythonのSeabornライブラリは、Matplotlibに基づいており、美しいデフォルトスタイルや統計データの視覚化に特化した機能を提供しています。この記事では、Seabornの基本的な使い方を解説し、KaggleのTitanicデータセットを使用して実例を示します。</p>



<h2 class="wp-block-heading">Seabornとは</h2>



<p class="wp-block-paragraph">Seabornは、Pythonのデータ可視化ライブラリであり、Matplotlibのラッパーライブラリとして機能します。デフォルトで美しいグラフを生成し、統計的なデータを視覚化するための機能を豊富に提供しています。データセットの関係性を調査したり、異なる変数間のパターンを発見したりするのに役立ちます。</p>



<h2 class="wp-block-heading">インストール</h2>



<p class="wp-block-paragraph">Seabornは、通常、pipコマンドを使用してインストールされます。</p>



<pre class="wp-block-code bash"><code>pip install seaborn</code></pre>



<h2 class="wp-block-heading">データの概要を確認する</h2>



<p class="wp-block-paragraph">題材はKaggleのTitanicを使うことにします。Titanicってなに？データを読み込むまでの方法は？という方は以前の記事を見てみてください。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-related">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/kaggle/1497/" title="Titanicをニューラルネットワークで予測する" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-320x180.png 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-240x135.png 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">Titanicをニューラルネットワークで予測する</div><div class="blogcard-snippet internal-blogcard-snippet">この記事は、KaggleのことはじめであるTitanicの生存者予測というコンペティションに焦点を当てています。Kaggleは機械学習コミュニティの中心的存在であり、データ分析のコンペティションを通じて参加者がスキルを磨く場として知られています。Kaggleでの機械学習コンペティションに参加する際の手法やプロセスを理解し、自身のスキル向上に役立てることができます。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2019.03.23</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-related">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/kaggle/1405/" title="【Kaggle】データの読み込み方" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-320x180.png 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-240x135.png 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【Kaggle】データの読み込み方</div><div class="blogcard-snippet internal-blogcard-snippet">KaggleにおけるCompetition（コンペ）への参加方法を詳細に解説した記事です。タイタニックを題材にして、Competitionへの参加登録方法からKernelの作成、Datasetの準備までを丁寧に説明しています。Kaggle初心者にとって役立つ手順をわかりやすく示しています。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2019.02.23</div></div></div></div></a>
</div>



<p class="wp-block-paragraph">まずはじめに、KaggleのTitanicデータセットを使用して、Seabornの機能を実際のデータに適用してみましょう。以下のコードを使用して、データセットを読み込みます。</p>



<pre class="wp-block-code python"><code>import seaborn as sns
import pandas as pd

# Reading file
titanic = pd.read_csv("../input/train.csv")</code></pre>



<h3 class="wp-block-heading">データ確認</h3>



<p class="wp-block-paragraph">まずは、どんなデータが入っているのかを確認します。</p>



<pre class="wp-block-code"><code>titanic.head()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="536" height="491" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/tit_data-1.jpg" alt="" class="wp-image-2238" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/tit_data-1.jpg 536w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/tit_data-1-300x275.jpg 300w" sizes="(max-width: 536px) 100vw, 536px" /></figure>



<h2 class="wp-block-heading">データの可視化</h2>



<h3 class="wp-block-heading">【pairplot】全組み合わせの相関グラフ</h3>



<p class="wp-block-paragraph">データセットの各変数同士の相関分析を簡単に実施できる関数として<code>pairplot</code>があります。</p>



<pre class="wp-block-code python"><code>sns.<strong><em>pairplot</em></strong>(titanic&#91;&#91;"Survived", "Pclass", "SibSp", "Parch", "Age", "Fare"]])
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="780" height="774" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-8.jpg" alt="" class="wp-image-2236" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-8.jpg 780w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-8-300x298.jpg 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-8-150x150.jpg 150w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-8-768x762.jpg 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>



<p class="wp-block-paragraph">このままだと、分析は不可能なのである項目で色分けします。hue=**というキーワード引数に色分けしたいフィールドを書くとグループごとに色分けされます。</p>



<p class="wp-block-paragraph">Survivedで色分けしましょう。0が死亡で1が生存なので青が死亡、オレンジが生存となります。</p>



<pre class="wp-block-code python"><code>sns.pairplot(titanic&#91;&#91;"Survived", "Pclass", "SibSp", "Parch", "Age", "Fare"]], 
             <strong><em>hue="Survived"</em></strong>)
plt.show()</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://ct-innovation01.xyz/DL-Freetime/wp/wp-content/uploads/2019/03/4b65ba2c995eff70d242ad16f5177683.jpg" alt="" class="wp-image-1660"/></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">私は統計学のエキスパートではないのでこれを見てもParchのグラフを見るとParchが0の人は生存率が高そう&#8230;かな？ぐらいであとはさっぱりです。</p>
</div></div>



<p class="wp-block-paragraph">この画像を作成するために以前紹介しているmatplotlibを使おうと思うとかなり大変です。subplotでこの数のグラフを準備してそれぞれのデータを入れてフォーマットを整える必要があります。</p>



<p class="wp-block-paragraph">どうしてもやってみたい方は、こちらの記事を参考にやってみてください。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-reference">
</div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-reference">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/programming/python/315/" title="matplotlibの基本: 散布図の描画方法" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-320x180.png 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-240x135.png 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">matplotlibの基本: 散布図の描画方法</div><div class="blogcard-snippet internal-blogcard-snippet">本記事では、Pythonのデータ可視化ライブラリであるmatplotlibを使用して、散布図の描画方法に焦点を当てました。まず、基本的なプロットの手法から始め、その後、グラフの見た目をカスタマイズする方法や複数のデータセットを重ねて表示する方法について解説しました。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2018.07.09</div></div></div></div></a>
</div>



<h3 class="wp-block-heading">【catplot】カテゴリーごとの棒グラフ</h3>



<p class="wp-block-paragraph">カテゴリー間の比較や分布を可視化するための有用な手法です。このグラフは、異なるカテゴリーに属するデータポイントの数値的な比較や分布を理解するのに役立ちます。こちらはcatplot関数で対応できます。</p>



<h4 class="wp-block-heading">1．同乗した兄弟や配偶者の数と生存率</h4>



<p class="wp-block-paragraph">同乗した兄弟や配偶者の数のカテゴリに対して生存したかどうかの推定値（指定しなければ平均値）をプロットするようなコードとその結果です。推定値の周りの信頼区間も計算され、誤差範囲も黒いラインでプロットされます。</p>



<pre class="wp-block-code python"><code>sib_s = sns.<em><strong>catplot</strong></em>(x="SibSp",y="Survived", data=titanic, kind="bar", size = 6 )
sib_s = sib_s.set_ylabels("survival prob")
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="427" height="420" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4cb3c1f00a1f7efdcfd64fb3c9ad450e-1.jpg" alt="" class="wp-image-2243" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4cb3c1f00a1f7efdcfd64fb3c9ad450e-1.jpg 427w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4cb3c1f00a1f7efdcfd64fb3c9ad450e-1-300x295.jpg 300w" sizes="(max-width: 427px) 100vw, 427px" /></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">あまり大家族だと生存率は高くないようです。救命ボートに全員で乗りたいが空きがなかったとかが原因なのでしょうか？ただ、<span class="marker-under">そこまで重要なファクターではなさそうです</span>。</p>
</div></div>



<h4 class="wp-block-heading">2．性別と生存率</h4>



<p class="wp-block-paragraph">では、性別というカテゴリに対して生存したかどうかの推定値をプロットさせます。</p>



<pre class="wp-block-code python"><code>s_s = sns.catplot(<strong><em>x="Sex"</em></strong>, y="Survived", data=titanic, kind="bar", size=6)
s_s = s_s.set_ylabels("survival prob")
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="420" height="416" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4b65ba2c995eff70d242ad16f5177683-1.jpg" alt="" class="wp-image-2235" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4b65ba2c995eff70d242ad16f5177683-1.jpg 420w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4b65ba2c995eff70d242ad16f5177683-1-300x297.jpg 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4b65ba2c995eff70d242ad16f5177683-1-150x150.jpg 150w" sizes="(max-width: 420px) 100vw, 420px" /></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">性別で見ると男性の生存率は結構低いことがわかります。</p>



<p class="wp-block-paragraph">そういえば、ある映画でも描かれてましたが女性と子供を先にボートに乗せてましたね。</p>



<p class="wp-block-paragraph">とにかく<span class="marker-under-blue">性別はそれなりに重要な特徴変数</span>になりそうです。</p>
</div></div>



<h4 class="wp-block-heading">3．チケットクラスと生存率</h4>



<p class="wp-block-paragraph">次に、チケットクラス（新幹線でいうと1がグリーン、2が指定席、3が自由席というイメージ）と生存に相関があるかどうかも同様に見ることができます。</p>



<pre class="wp-block-code python"><code>c_s = sns.catplot(<strong><em>x="Pclass",y="Survived"</em></strong>, data=titanic, kind="bar", size=6)
c_s = c_s.set_ylabels("survival prob")
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="433" height="420" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-10.jpg" alt="" class="wp-image-2244" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-10.jpg 433w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-10-300x291.jpg 300w" sizes="(max-width: 433px) 100vw, 433px" /></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">チケットクラスは1等から順に生存率は下がっています。</p>



<p class="wp-block-paragraph">やはり<span class="marker-under-blue">高いチケットを買った層は優先</span>されているみたいです。</p>
</div></div>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-memo block-box">
<p class="wp-block-paragraph">ちなみに、タイタニック号の乗船料金はいくらだったのか？<br>（※ドル円換算レートは記事作成時のレート［USD/JPY 150.64］を参考にしています。）</p>



<ul class="wp-block-list">
<li>1等スイート：￡870 / $4,350（現在の価値に換算して約750万円）</li>



<li>1等：￡30 / $150（現在の価値に換算して約26万円）</li>



<li>2等：￡12 / $60（現在の価値に換算して約10万円）</li>



<li>3等：￡3 ~ ￡8 / $15 ~ $40（現在の価値に換算して約3万円～約7万円）</li>
</ul>



<p class="wp-block-paragraph">スイートとんでもない値段ですね。</p>
</div>



<h4 class="wp-block-heading">4．性別＋チケットクラスと生存率</h4>



<p class="wp-block-paragraph">さらに性別とチケットクラスの組み合わせが生存に相関があるかどうかも同様に見てみましょう。</p>



<pre class="wp-block-code python"><code>c_s = sns.catplot(x="Pclass", y="Survived",<strong><em> hue="Sex",</em></strong>
                  data=titanic, kind="bar", size = 6 )
c_s = c_s.set_ylabels("survival prob")
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="500" height="425" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4cb3c1f00a1f7efdcfd64fb3c9ad450e.jpg" alt="" class="wp-image-2234" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4cb3c1f00a1f7efdcfd64fb3c9ad450e.jpg 500w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4cb3c1f00a1f7efdcfd64fb3c9ad450e-300x255.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">ここで注目するところは、1等チケットを持っている男性よりも3等チケットを持った女性のほうが生存率が高いことです。</p>



<p class="wp-block-paragraph">このことから<span class="marker-under-blue">チケットの格よりも性別のほうが重要</span>なファクターであることが汲み取れますね。</p>
</div></div>



<h3 class="wp-block-heading">【countplot】カテゴリごとのカウントグラフ</h3>



<p class="wp-block-paragraph">今度は性別と生死で場合分けを行ってカウントしてくれるcountplotを利用してみます。</p>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-check block-box">
<p class="wp-block-paragraph">前項で男性の生存率は低いことはわかりましたが、男性客が圧倒的に多かったから生存率が低いだけである可能性は捨てきれません。カウントをとってみることで生存数の絶対値が性別による差はなくただ単に男女同じ人数をボートに乗せた結果ではないのか。その場合性別は重要なファクターであるかどうかを再考する必要が出てくるかもしれません。</p>
</div>



<pre class="wp-block-code python"><code>count_s = sns.<strong><em>countplot</em></strong>(x="Sex", hue="Survived", data=titanic)
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="401" height="276" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4b65ba2c995eff70d242ad16f5177683-2.jpg" alt="" class="wp-image-2242" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4b65ba2c995eff70d242ad16f5177683-2.jpg 401w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4b65ba2c995eff70d242ad16f5177683-2-300x206.jpg 300w" sizes="(max-width: 401px) 100vw, 401px" /></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">男性が100名程度に対して、女性は200名超の倍以上が助かっています。</p>



<p class="wp-block-paragraph">この結果からやはり<span class="marker-under-blue">性別は重要なファクターである</span>といえそうです。</p>
</div></div>



<h3 class="wp-block-heading">【FacetGrid】属性ごとのグラフ</h3>



<p class="wp-block-paragraph">最後に年齢のように連続値となっているデータにおいて生存率を調べたい場合catplotではうまく可視化できません。そこでFacetGrid関数を用いることで、0-10歳までのグループ、11-20歳までのグループといった属性に分けて、その属性ごとにグラフを描画させます。</p>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-tips block-box">
<p class="wp-block-paragraph">無理やりcatplotした結果</p>



<figure class="wp-block-image size-full"><img decoding="async" width="500" height="416" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-9.jpg" alt="" class="wp-image-2241" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-9.jpg 500w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-9-300x250.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></figure>
</div>



<pre class="wp-block-code python"><code>Fg = sns.<strong><em>FacetGrid</em></strong>(titanic, col='Survived')
Fg = Fg.map(sns.distplot, "Age")</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="438" height="221" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-11.jpg" alt="" class="wp-image-2240" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-11.jpg 438w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-11-300x151.jpg 300w" sizes="(max-width: 438px) 100vw, 438px" /></figure>



<p class="wp-block-paragraph">さらに性別で分けて生死で色分けした形で再度描画します。</p>



<pre class="wp-block-code python"><code>Fg = sns.FacetGrid(titanic, <strong><em>col='Sex', hue="Survived"</em></strong>)
Fg = Fg.map(sns.distplot, "Age").add_legend()</code></pre>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="490" height="222" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-12.jpg" alt="" class="wp-image-2239" style="width:490px;height:auto" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-12.jpg 490w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-12-300x136.jpg 300w" sizes="(max-width: 490px) 100vw, 490px" /></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">女性だけでなく子供も生存率が高いです。</p>



<p class="wp-block-paragraph"><span class="marker-under-blue">年齢を10歳刻みで分けてファクターにするのは有効</span>と考えられそうです。</p>
</div></div>



<h2 class="wp-block-heading">結果</h2>



<p class="wp-block-paragraph">Seabornは、データの可視化を美しくグラフを非常にスマートなコードで実現できることがわかりました。この記事では、Seabornの基本的な使い方として、pairplot、catplot、countplot、FacetGridの4つの例を紹介しました。これらの機能を活用することで、データの傾向や関係性を視覚的に把握できることを実演しました。</p>



<p class="wp-block-paragraph">Seabornを使ってデータを探索し、パターンを発見し、洞察を得るための幅広い機能が提供されています。データサイエンスや機械学習の分野で作業する際に、Seabornは強力な味方となることでしょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/kaggle/2209/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>matplotlibの基本: ステム（茎）グラフの描画方法</title>
		<link>https://www.ct-innovation.blog/dl-freetime/programming/python/2210/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/programming/python/2210/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Wed, 06 Mar 2024 02:41:00 +0000</pubDate>
				<category><![CDATA[matplotlib]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[stem]]></category>
		<category><![CDATA[可視化]]></category>
		<guid isPermaLink="false">https://www.ct-innovation.blog/dl-freetime/?p=2210</guid>

					<description><![CDATA[本記事では、Pythonのデータ可視化ライブラリであるmatplotlibのstemに焦点を当てて解説します。stemは、離散データのプロットに特化した便利な機能であり、特に信号処理や数学の分野でよく使用されます。まずは [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">本記事では、Pythonのデータ可視化ライブラリであるmatplotlibのstemに焦点を当てて解説します。stemは、離散データのプロットに特化した便利な機能であり、特に信号処理や数学の分野でよく使用されます。まずは基本的な使い方から始めて、その後、カスタマイズや応用例についても解説します。</p>



<span id="more-2210"></span>



<h2 class="wp-block-heading">matplotlibとは</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">プログラミング言語Pythonおよびその科学計算用ライブラリNumPyのためのグラフ描画ライブラリである。オブジェクト指向のAPIを提供しており、様々な種類のグラフを描画する能力を持つ。描画できるのは主に2次元のプロットだが、3次元プロットの機能も追加されてきている。描画したグラフを各種形式の画像（各種ベクトル画像形式も含む）として保存することもできる（Wiki参照）</p>
<cite><a rel="noopener" target="_blank" href="https://ja.wikipedia.org/wiki/Matplotlib">matplotlib &#8211; Wikipedia</a></cite></blockquote>



<h2 class="wp-block-heading"><strong>基本のプロット</strong></h2>



<p class="wp-block-paragraph">まずは、stem関数の基本的な使い方を見てみましょう。以下のコードは、与えられたデータポイントを使って離散データのプロットを行うシンプルな例です。</p>



<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt

x = &#91;1, 2, 3, 4, 5]
y = &#91;1, 8, 3, 6, 5]

plt.stem(x, y)
plt.show()</code></pre>



<p class="wp-block-paragraph">このコードでは、xとyに与えられたデータポイントを使って、stem関数を用いて離散データのプロットを行っています。stem関数は、与えられたxとyの値を棒グラフとしてプロットします。</p>



<p class="wp-block-paragraph">折れ線グラフや棒グラフでプロットしたい場合はこちらを参考にしてください。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-reference">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/programming/python/313/" title="matplotlibの基本: 折れ線グラフの描画方法" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-320x180.png 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-240x135.png 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">matplotlibの基本: 折れ線グラフの描画方法</div><div class="blogcard-snippet internal-blogcard-snippet">本記事では、Pythonのデータ可視化ライブラリであるmatplotlibを使用して、折れ線グラフの描画方法に焦点を当てました。まず、基本的なプロットの手法から始め、その後、グラフの見た目をカスタマイズする方法や複数のデータセットを重ねて表示する方法について解説しました。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2023.12.18</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-reference">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/programming/python/310/" title="matplotlibの基本: 棒グラフの描画方法" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/Figure_1-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/Figure_1-320x180.png 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/Figure_1-240x135.png 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/Figure_1-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">matplotlibの基本: 棒グラフの描画方法</div><div class="blogcard-snippet internal-blogcard-snippet">機械学習やデータ解析において、データの可視化は不可欠です。その中でも、棒グラフはデータの比較や変化を直感的に理解するのに役立ちます。Pythonのライブラリであるmatplotlibを使用して、棒グラフを描く方法について解説します。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2018.07.17</div></div></div></div></a>
</div>



<p class="wp-block-paragraph">xとyの同じインデックスつまり（１,１）、（２,８）、（３,３）、（４,６）、（５,５）にプロットされています。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="532" height="408" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-28-234734.png" alt="" class="wp-image-2218" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-28-234734.png 532w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-28-234734-300x230.png 300w" sizes="(max-width: 532px) 100vw, 532px" /></figure>



<p class="wp-block-paragraph">問題なくプロットされてます。では、前回同様に見た目をカスタマイズしていきます。</p>



<h2 class="wp-block-heading"><strong>見た目のカスタマイズ</strong></h2>



<p class="wp-block-paragraph">さまざまなカスタマイズが可能です。例えば、マーカーやラインのスタイル、色などを指定することができます。</p>



<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt
x = &#91;1, 2, 3, 4, 5]
y = &#91;1, 8, 3, 6, 5]

plt.stem(x, y<strong><em>, linefmt='--', markerfmt='o', basefmt=' ', use_line_collection=True</em></strong>)
<strong><em>plt.legend()</em></strong>　#凡例
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="530" height="408" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-28-235307.png" alt="" class="wp-image-2219" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-28-235307.png 530w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-28-235307-300x231.png 300w" sizes="(max-width: 530px) 100vw, 530px" /></figure>



<h3 class="wp-block-heading">Tips：主要なカスタマイズキーワード</h3>



<p class="wp-block-paragraph">グラフ作成時に使用できる引数オプションが非常に多くあります。が必要最低限テーブルにまとめた分をおさえて記載します。</p>



<figure class="wp-block-table"><div class="scrollable-table"><table><thead><tr><th>kywd</th><th>入力例</th><th>備考</th></tr></thead><tbody><tr><td>x,y</td><td>[1,2,3,4,5] または 事前に定義したlistなど</td><td>array形式のもの<br><span style="color: #ff0000;">※必須</span></td></tr><tr><td>orientation </td><td>orientation=&#8217;vertical&#8217;</td><td>ステムの方向<br>verticalは垂直方向<br>horizontalは水平方向</td></tr><tr><td colspan="3"><strong>line関連</strong></td></tr><tr><td>linefmt</td><td>linefmt=&#8221;blue&#8221;</td><td>垂直線の色や線種<br>-は実線<br>&#8211;は破線<br>-.は一点鎖線<br>:は点線</td></tr><tr><td>bottom</td><td>bottom=0</td><td>ベースラインの位置 </td></tr><tr><td colspan="3"><strong>marker関連</strong></td></tr><tr><td>markerfmt</td><td>markerfmt=&#8221;s&#8221;</td><td>マーカーの形<br>指定しないと○<br>*は星形など様々指定可</td></tr><tr><td>label</td><td>label=&#8221;label1&#8243;</td><td>凡例名</td></tr></tbody></table></div></figure>



<h4 class="wp-block-heading">色見本</h4>



<p class="wp-block-paragraph"><img decoding="async" width="800" height="500" class="alignnone size-full wp-image-114" src="http://ct-innovation01.xyz/DL-Freetime/wp/wp-content/uploads/2018/06/20170927115343.png" alt=""></p>



<p class="wp-block-paragraph"><a rel="noopener" target="_blank" href="https://matplotlib.org/2.0.2/examples/color/named_colors.html">color example code: named_colors.py — Matplotlib 2.0.2 documentation</a></p>



<h4 class="wp-block-heading">マーカー見本</h4>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="550" height="450" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115416.png" alt="" class="wp-image-2118" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115416.png 550w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115416-300x245.png 300w" sizes="(max-width: 550px) 100vw, 550px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="550" height="450" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115403.png" alt="" class="wp-image-2119" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115403.png 550w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115403-300x245.png 300w" sizes="(max-width: 550px) 100vw, 550px" /></figure>
</div>
</div>



<p class="wp-block-paragraph"><a rel="noopener" target="_blank" href="https://matplotlib.org/2.0.2/examples/lines_bars_and_markers/marker_reference.html">lines_bars_and_markers example code: marker_reference.py — Matplotlib 2.0.2 documentation</a></p>



<h2 class="wp-block-heading">信号処理</h2>



<p class="wp-block-paragraph">stem関数は、信号処理の分野でよく使用されます。例えば、離散時間システムのインパルス応答や周波数応答を可視化する際に活用されます。以下はその一例です。</p>



<pre class="wp-block-preformatted">import numpy as np
import matplotlib.pyplot as plt

# インパルス応答の生成
t = np.linspace(0, 1, 100)
h = np.exp(-5*t) * np.sin(10*np.pi*t)

# インパルス応答のプロット
plt.stem(t, h, linefmt='--', markerfmt='.', basefmt='C3-', use_line_collection=True)
plt.xlabel('Time')
plt.ylabel('Amplitude')
plt.title('Impulse Response')
plt.grid(True)
plt.show()</pre>



<figure class="wp-block-image size-full"><img decoding="async" width="573" height="447" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-000851.png" alt="" class="wp-image-2220" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-000851.png 573w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-000851-300x234.png 300w" sizes="(max-width: 573px) 100vw, 573px" /></figure>



<p class="wp-block-paragraph">このコードでは、指数的に減衰するインパルス応答を生成し、stem関数を使ってプロットしています。これにより、インパルス応答の特性を視覚的に把握することができます。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">本記事では、matplotlibのstem関数について解説しました。stem関数を使うことで、離散データを直感的に可視化することができます。また、カスタマイズや信号処理の応用例についても紹介しました。これを参考にして、データの可視化や信号処理に役立ててください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/programming/python/2210/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>matplotlibの応用: 2次元メッシュの描画方法</title>
		<link>https://www.ct-innovation.blog/dl-freetime/programming/python/282/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/programming/python/282/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Fri, 21 Jul 2023 04:22:00 +0000</pubDate>
				<category><![CDATA[matplotlib]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[plot_wireframe]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[可視化]]></category>
		<guid isPermaLink="false">http://ct-innovation01.xyz/DL-Freetime/?p=282</guid>

					<description><![CDATA[機械学習や科学計算などでデータを扱う際に、その関係性やパターンを可視化することは重要です。Pythonのライブラリであるmatplotlibを使用することで、簡単に2次元メッシュを描画することができます。この記事では、そ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">機械学習や科学計算などでデータを扱う際に、その関係性やパターンを可視化することは重要です。Pythonのライブラリであるmatplotlibを使用することで、簡単に2次元メッシュを描画することができます。この記事では、その方法について詳しく解説します。</p>



<p class="wp-block-paragraph">3次元で散布図を描きたい方はこちらを参考にしてください。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-reference">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/programming/python/301/" title="matplotlibの基本: 3D散布図の描画方法" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/Figure_1-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/Figure_1-320x180.png 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/Figure_1-240x135.png 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/Figure_1-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">matplotlibの基本: 3D散布図の描画方法</div><div class="blogcard-snippet internal-blogcard-snippet">この解説記事では、matplotlibを使用してPythonで3D散布図を描く方法について詳細に解説しました。データの可視化は、機械学習や科学計算などの分野において不可欠な要素であり、その中でも3D散布図はデータの関係性やパターンを直感的に理解するのに有効です。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2023.07.04</div></div></div></div></a>
</div>



<span id="more-282"></span>



<h2 class="wp-block-heading">matplotlibとは</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">プログラミング言語Pythonおよびその科学計算用ライブラリNumPyのためのグラフ描画ライブラリである。オブジェクト指向のAPIを提供しており、様々な種類のグラフを描画する能力を持つ。描画できるのは主に2次元のプロットだが、3次元プロットの機能も追加されてきている。描画したグラフを各種形式の画像（各種ベクトル画像形式も含む）として保存することもできる（Wiki参照）</p>
<cite><a rel="noopener" target="_blank" href="https://ja.wikipedia.org/wiki/Matplotlib">matplotlib &#8211; Wikipedia</a></cite></blockquote>



<h2 class="wp-block-heading"><strong>基本のプロット</strong></h2>



<p class="wp-block-paragraph">まずは基本的なソースコードを紹介します。以下のコードは、2次元メッシュを作成し、その結果を3次元のワイヤーフレームでプロットします。</p>



<p class="wp-block-paragraph">データはNumpyを用いて-5～5までの範囲の総組合せの配列を作成し、x,yを与えると適当な返り値が与えられる関数を用意しました。</p>



<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

def func(x,y):
    return (np.sin(x))* (np.cos(y)-x)**2

x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(x, y)
Z = func(X, Y)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
<strong><em>ax.plot_wireframe(X, Y, Z)</em></strong>
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="641" height="533" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171018185520.png" alt="" class="wp-image-2177" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171018185520.png 641w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171018185520-300x249.png 300w" sizes="(max-width: 641px) 100vw, 641px" /></figure>



<p class="wp-block-paragraph">問題なくプロットされてます。3次元プロットグラフには特別な機能が付き、ドラッグで回ります。</p>



<figure class="wp-block-image"><img decoding="async" src="https://cdn-ak.f.st-hatena.com/images/fotolife/c/ct-innovation01/20171013/20171013133046.gif" alt="f:id:ct-innovation01:20171013133046g:plain" title="f:id:ct-innovation01:20171013133046g:plain"/></figure>



<h2 class="wp-block-heading"><strong>見た目のカスタマイズ</strong></h2>



<p class="wp-block-paragraph">プロットの見た目をカスタマイズするためには、色やマーカーの形などを調整することができます。以下の例では、色をカスタマイズする方法を紹介しています。</p>



<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
from matplotlib import cm

def func(x,y):
    return (np.sin(x))* (np.cos(y)-x)**2

<strong><em>def min_max(x, axis=None):
    min = x.min(axis=axis, keepdims=True)
    max = x.max(axis=axis, keepdims=True)
    result = (x-min)/(max-min)
    return result</em></strong>

x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(x, y)
Z = func(X, Y)

<strong><em>c = min_max(x)
cmap = plt.get_cmap("Blues")</em></strong>

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_wireframe(X, Y, Z<strong><em>, colors=cmap(c)</em></strong>)
plt.show()</code></pre>



<p class="wp-block-paragraph">このコードでは、カラーマップを使用してワイヤーフレームの色を変更しています。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="642" height="538" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171020205653.png" alt="" class="wp-image-2176" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171020205653.png 642w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171020205653-300x251.png 300w" sizes="(max-width: 642px) 100vw, 642px" /></figure>



<h3 class="wp-block-heading">Tips：主要なカスタマイズキーワード</h3>



<p class="wp-block-paragraph">matplotlibでは、さまざまなカスタマイズキーワードを使用することでプロットの見た目を調整することができます。以下の表は、主要なカスタマイズキーワードの例を示しています。</p>



<figure class="wp-block-table"><div class="scrollable-table"><table><thead><tr><th>kywd</th><th>入力例</th><th>備考</th></tr></thead><tbody><tr><td>x,y,z</td><td>[1,2,3,4,5] または 事前に定義したlistなど</td><td>array形式のもの<br><span style="color: #ff0000;">※必須</span></td></tr><tr><td>c</td><td>c=&#8221;red&#8221; または<br>c=&#8221;#FFFF00&#8243; または<br>c=(1.0,0,1.0)</td><td>ラインの色<br>色名や16進数、RGBでの指定が可能</td></tr><tr><td>label</td><td>label=&#8221;label1&#8243;</td><td>凡例名</td></tr></tbody></table></div></figure>



<h4 class="wp-block-heading">色見本</h4>



<p class="wp-block-paragraph"><img decoding="async" width="800" height="500" class="alignnone size-full wp-image-114" src="http://ct-innovation01.xyz/DL-Freetime/wp/wp-content/uploads/2018/06/20170927115343.png" alt=""></p>



<p class="wp-block-paragraph"><a rel="noopener" target="_blank" href="https://matplotlib.org/2.0.2/examples/color/named_colors.html">color example code: named_colors.py — Matplotlib 2.0.2 documentation</a></p>



<h2 class="wp-block-heading"><strong>見た目のカスタマイズ</strong>（目盛り線）</h2>



<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
from matplotlib import cm

def func(x,y):
    return (np.sin(x))* (np.cos(y)-x)**2

def min_max(x, axis=None):
    min = x.min(axis=axis, keepdims=True)
    max = x.max(axis=axis, keepdims=True)
    result = (x-min)/(max-min)
    return result

x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(x, y)
Z = func(X, Y)

c = min_max(x)
cmap = plt.get_cmap("Blues")

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_wireframe(X, Y, Z, colors=cmap(c))
<strong><em>ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')</em></strong>
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="644" height="539" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171020215312.png" alt="" class="wp-image-2175" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171020215312.png 644w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171020215312-300x251.png 300w" sizes="(max-width: 644px) 100vw, 644px" /></figure>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">この解説記事では、matplotlibを使用して2次元メッシュのプロット方法について詳しく解説しました。基本的なプロットから見た目のカスタマイズまでを網羅し、読者がデータの可視化に役立てることができるように努めました。matplotlibを使いこなすことで、データ解析や可視化のスキルを向上させ、さまざまな分野での応用が可能になります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/programming/python/282/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>matplotlibの基本: 3D散布図の描画方法</title>
		<link>https://www.ct-innovation.blog/dl-freetime/programming/python/301/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/programming/python/301/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Tue, 04 Jul 2023 07:10:00 +0000</pubDate>
				<category><![CDATA[matplotlib]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[scatter]]></category>
		<category><![CDATA[可視化]]></category>
		<guid isPermaLink="false">http://ct-innovation01.xyz/DL-Freetime/?p=301</guid>

					<description><![CDATA[機械学習や科学計算などで多くのデータを取り扱う際に、データの可視化は重要です。その中でも、3D散布図はデータの分布や関係性を直感的に理解するのに役立ちます。Pythonのライブラリであるmatplotlibを使用して、3 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">機械学習や科学計算などで多くのデータを取り扱う際に、データの可視化は重要です。その中でも、3D散布図はデータの分布や関係性を直感的に理解するのに役立ちます。Pythonのライブラリであるmatplotlibを使用して、3D散布図を描く方法について解説します。</p>



<p class="wp-block-paragraph">2次元の散布図を描きたい方はこちらを参考にしてください</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-reference">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/programming/python/315/" title="matplotlibの基本: 散布図の描画方法" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-320x180.png 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-240x135.png 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">matplotlibの基本: 散布図の描画方法</div><div class="blogcard-snippet internal-blogcard-snippet">本記事では、Pythonのデータ可視化ライブラリであるmatplotlibを使用して、散布図の描画方法に焦点を当てました。まず、基本的なプロットの手法から始め、その後、グラフの見た目をカスタマイズする方法や複数のデータセットを重ねて表示する方法について解説しました。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2018.07.09</div></div></div></div></a>
</div>



<span id="more-301"></span>



<h2 class="wp-block-heading">matplotlibとは</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">プログラミング言語Pythonおよびその科学計算用ライブラリNumPyのためのグラフ描画ライブラリである。オブジェクト指向のAPIを提供しており、様々な種類のグラフを描画する能力を持つ。描画できるのは主に2次元のプロットだが、3次元プロットの機能も追加されてきている。描画したグラフを各種形式の画像（各種ベクトル画像形式も含む）として保存することもできる（Wiki参照）</p>
<cite><a rel="noopener" target="_blank" href="https://ja.wikipedia.org/wiki/Matplotlib">matplotlib &#8211; Wikipedia</a></cite></blockquote>



<h2 class="wp-block-heading"><strong>基本のプロット</strong></h2>



<p class="wp-block-paragraph">3D散布図を描く基本的なソースコードは以下の通りです。参考として2次元の散布図を描画する方法と比較して違いに注目してください。</p>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-tips block-box">
<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt<br><br>x = &#91;1, 2, 3, 4, 5]<br>y = &#91;9, 8, 7, 6, 5]<br><br>plt.scatter(x,y)<br>plt.show()</code></pre>
</div>



<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt
<strong><em>from mpl_toolkits.mplot3d import Axes3D</em></strong>

<strong><em>fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')</em></strong>

x = &#91;1, 2, 3, 4, 5]
y = &#91;1, 8, 3, 6, 5]
<strong><em>z = &#91;1, 5, 3, 8, 9]</em></strong>

ax.scatter(x, y<strong><em>, z</em></strong>)
plt.show()</code></pre>



<p class="wp-block-paragraph">xとyの同じインデックス例えば（x[0], y[0], z[0]）といった具合にプロットしてくれます。つまり（１,１,１）、（２,８,５）、（３,３,３）、（４,６,８）、（５,５,９）とプロットされていきます。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="643" height="536" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171007121022.png" alt="" class="wp-image-2181" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171007121022.png 643w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171007121022-300x250.png 300w" sizes="(max-width: 643px) 100vw, 643px" /></figure>



<p class="wp-block-paragraph">3次元プロットグラフには特別な機能が付き、ドラッグで回ります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="499" height="382" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/06/20171005153227.gif" alt="" class="wp-image-170"/></figure>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-tips block-box">
<p class="wp-block-paragraph">3次元のグラフ描画について調べていると以下のコードを見かけます。</p>



<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
<strong><em>ax = Axes3D(fig)</em></strong></code></pre>



<p class="wp-block-paragraph">これは過去（v1.0.0）は使われていたもので、現バージョンでは推奨されていません。</p>
</div>



<h2 class="wp-block-heading"><strong>見た目のカスタマイズ</strong></h2>



<p class="wp-block-paragraph">3D散布図の見た目をカスタマイズすることもできます。以下のコードでは、マーカーの色と形の変更し、凡例を設定しています。</p>



<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

x = &#91;1, 2, 3, 4, 5]
y = &#91;1, 8, 3, 6, 5]
z = &#91;1, 5, 3, 8, 9]

ax.scatter(x, y, z<strong><em>, c='r', marker='^', label='test'</em></strong>)
<strong><em>ax.legend()</em></strong>
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="642" height="538" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171007121146.png" alt="" class="wp-image-2180" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171007121146.png 642w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171007121146-300x251.png 300w" sizes="(max-width: 642px) 100vw, 642px" /></figure>



<h3 class="wp-block-heading">Tips：主要なカスタマイズキーワード</h3>



<p class="wp-block-paragraph">3D散布図作成時に使用できる引数オプションが非常に多くあります。が必要最低限テーブルにまとめた分をおさえて記載します。</p>



<figure class="wp-block-table"><div class="scrollable-table"><table><thead><tr><th>kywd</th><th>入力例</th><th>備考</th></tr></thead><tbody><tr><td>x,y,z</td><td>[1,2,3,4,5] または 事前に定義したlistなど</td><td>array形式のもの<br><span style="color: #ff0000;">※必須</span></td></tr><tr><td>s</td><td>s=5 または<br>x,yと同範囲のリスト（要素はサイズ）</td><td>マーカーの大きさ<br>指定しないと20</td></tr><tr><td>c</td><td>c=&#8221;red&#8221; または<br>c=&#8221;#FFFF00&#8243; または<br>c=(1.0,0,1.0)</td><td>マーカーの色<br>色名や16進数、RGBでの指定が可能</td></tr><tr><td>marker</td><td>marker=&#8221;.&#8221;</td><td>マーカーの形<br>指定しないと○<br>*は星形など様々指定可</td></tr><tr><td>alpha</td><td>alpha=0.3</td><td>マーカーの透明度<br>指定は0-1の間で行う</td></tr><tr><td>linewidths</td><td>linewidths=2</td><td>マーカーの枠線の幅</td></tr><tr><td>label</td><td>label=&#8221;label1&#8243;</td><td>凡例名</td></tr></tbody></table></div></figure>



<h3 class="wp-block-heading">色見本</h3>



<p class="wp-block-paragraph"><img decoding="async" width="800" height="500" class="alignnone size-full wp-image-114" src="http://ct-innovation01.xyz/DL-Freetime/wp/wp-content/uploads/2018/06/20170927115343.png" alt=""></p>



<p class="wp-block-paragraph"><a rel="noopener" target="_blank" href="https://matplotlib.org/2.0.2/examples/color/named_colors.html">color example code: named_colors.py — Matplotlib 2.0.2 documentation</a></p>



<h3 class="wp-block-heading">マーカー見本</h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="550" height="450" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115416.png" alt="" class="wp-image-2118" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115416.png 550w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115416-300x245.png 300w" sizes="(max-width: 550px) 100vw, 550px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="550" height="450" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115403.png" alt="" class="wp-image-2119" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115403.png 550w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115403-300x245.png 300w" sizes="(max-width: 550px) 100vw, 550px" /></figure>
</div>
</div>



<p class="wp-block-paragraph"><a rel="noopener" target="_blank" href="https://matplotlib.org/2.0.2/examples/lines_bars_and_markers/marker_reference.html">lines_bars_and_markers example code</a></p>



<h2 class="wp-block-heading"><strong>見た目のカスタマイズ</strong>（目盛り線）</h2>



<p class="wp-block-paragraph">X軸に「X」、Y軸に「Y」などそれぞれの軸にラベルを付けるためにプログラムを修正します。</p>



<pre class="wp-block-preformatted">import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

x = [1, 2, 3, 4, 5]
y = [1, 8, 3, 6, 5]
z = [1, 5, 3, 8, 9]

ax.scatter(x, y, z, c='r', marker='^', label='test')
ax.legend()
<strong><em>ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')</em></strong>
plt.show()</pre>



<figure class="wp-block-image size-full"><img decoding="async" width="640" height="537" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171008190456.png" alt="" class="wp-image-2179" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171008190456.png 640w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171008190456-300x252.png 300w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p class="wp-block-paragraph">次の最後の項ではに2次元のグラフとの組み合わせができるかを試します。</p>



<h2 class="wp-block-heading">一つのグラフに折れ線と3D散布図を重ねる</h2>



<p class="wp-block-paragraph">一つのグラフに複数のプロット重ねて表示することも可能です。以下のコードでは、二つのデータセットを折れ線グラフと3D散布図として同じグラフ上に描画しています。</p>



<pre class="wp-block-preformatted">import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

x = [1, 2, 3, 4, 5]
y = [1, 8, 3, 6, 5]
z = [1, 5, 3, 8, 9]

ax.scatter(x, y, z, c='r', marker='^', label='test')
<strong><em>plt.plot(x,y,label='test',linewidth=3,color='b',
          marker='^',markeredgecolor="black")</em></strong>
ax.legend()
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()</pre>



<figure class="wp-block-image size-full"><img decoding="async" width="642" height="537" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171008190901.png" alt="" class="wp-image-2178" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171008190901.png 642w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/07/20171008190901-300x251.png 300w" sizes="(max-width: 642px) 100vw, 642px" /></figure>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">matplotlibを使用して3D散布図を描く方法をまとめると以下の通りです。</p>



<ul class="wp-block-list">
<li>matplotlibはPythonのグラフ描画ライブラリであり、3Dプロットの機能も提供している。</li>



<li>scatter()関数を使用して散布図を描画し、必要に応じて色やマーカーの形を変更できる。</li>



<li>散布図全体の見た目を変更するには、軸ラベルを追加するなどのオプションを設定する。</li>
</ul>



<p class="wp-block-paragraph">これらの手法を組み合わせることで、さまざまなデータの特性や要件に応じた3D散布図を描画することができます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/programming/python/301/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>matplotlibの基本: 棒グラフの描画方法</title>
		<link>https://www.ct-innovation.blog/dl-freetime/programming/python/310/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/programming/python/310/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Tue, 17 Jul 2018 00:31:19 +0000</pubDate>
				<category><![CDATA[matplotlib]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[bar]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[可視化]]></category>
		<guid isPermaLink="false">http://ct-innovation01.xyz/DL-Freetime/?p=310</guid>

					<description><![CDATA[本記事では、Pythonのデータ可視化ライブラリであるmatplotlibを使用して、棒グラフの描画方法に焦点を当てました。まず、基本的なプロットの手法から始め、その後、グラフの見た目をカスタマイズする方法や複数のデータ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">本記事では、Pythonのデータ可視化ライブラリであるmatplotlibを使用して、棒グラフの描画方法に焦点を当てました。まず、基本的なプロットの手法から始め、その後、グラフの見た目をカスタマイズする方法や複数のデータセットを重ねて表示する方法について解説しました。</p>



<span id="more-310"></span>



<h2 class="wp-block-heading">matplotlibとは</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">プログラミング言語Pythonおよびその科学計算用ライブラリNumPyのためのグラフ描画ライブラリである。オブジェクト指向のAPIを提供しており、様々な種類のグラフを描画する能力を持つ。描画できるのは主に2次元のプロットだが、3次元プロットの機能も追加されてきている。描画したグラフを各種形式の画像（各種ベクトル画像形式も含む）として保存することもできる（Wiki参照）</p>
<cite><a rel="noopener" target="_blank" href="https://ja.wikipedia.org/wiki/Matplotlib">matplotlib &#8211; Wikipedia</a></cite></blockquote>



<h2 class="wp-block-heading"><strong>基本のプロット</strong></h2>



<p class="wp-block-paragraph">まずは、棒グラフを描くための基本的なソースコードを示します。</p>



<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt

x = &#91;1, 2, 3, 4, 5]
y = &#91;1, 8, 3, 6, 5]

plt.bar(x, y)
plt.show()</code></pre>



<p class="wp-block-paragraph">xとyの同じインデックスつまり（１,１）、（２,８）、（３,３）、（４,６）、（５,５）にプロットされています。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="643" height="538" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/07/20170928224551.png" alt="" class="wp-image-2165" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/07/20170928224551.png 643w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/07/20170928224551-300x251.png 300w" sizes="(max-width: 643px) 100vw, 643px" /></figure>



<h2 class="wp-block-heading"><strong>見た目のカスタマイズ</strong></h2>



<p class="wp-block-paragraph">棒グラフの見た目をカスタマイズすることもできます。以下のコードでは、棒自体の太さの変更と凡例を設定しています。</p>



<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt
x = &#91;1, 2, 3, 4, 5]
y = &#91;1, 8, 3, 6, 5]

plt.bar(x, y<strong><em>, label='test', width=0.4</em></strong>)
<strong><em>plt.legend()</em></strong>
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="638" height="535" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/07/20170928224706.png" alt="" class="wp-image-2169" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/07/20170928224706.png 638w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/07/20170928224706-300x252.png 300w" sizes="(max-width: 638px) 100vw, 638px" /></figure>



<h3 class="wp-block-heading">Tips：主要なカスタマイズキーワード</h3>



<p class="wp-block-paragraph">棒グラフ作成時に使用できる引数オプションが非常に多くあります。が必要最低限テーブルにまとめた分をおさえて記載します。</p>



<figure class="wp-block-table"><div class="scrollable-table"><table><thead><tr><th>kywd</th><th>入力例</th><th>備考</th></tr></thead><tbody><tr><td>x,y</td><td>[1,2,3,4,5] または 事前に定義したlistなど</td><td>array形式のもの<br><span style="color: #ff0000;">※必須</span></td></tr><tr><td>linewidth</td><td>linewidth=5</td><td>枠線の太さ</td></tr><tr><td>edgecolor</td><td>edgecolor=&#8221;r&#8221;</td><td>枠線の色<br>色名や16進数、RGBでの指定が可能</td></tr><tr><td>color</td><td>color=&#8221;red&#8221; または<br>color=&#8221;#FFFF00&#8243; または<br>color=(1.0,0,1.0)</td><td>棒の色<br>色名や16進数、RGBでの指定が可能</td></tr><tr><td>width</td><td>width=&#8221;s&#8221;</td><td>棒の太さ</td></tr><tr><td>xerr</td><td>xerr=0.5</td><td>X方向エラーバーの範囲</td></tr><tr><td>yerr</td><td>yerr=0.5</td><td>Y方向エラーバーの範囲</td></tr><tr><td>bottom</td><td>bottom=積み上げるデータ</td><td>積み上げ用データ</td></tr><tr><td>label</td><td>label=&#8221;label1&#8243;</td><td>凡例名</td></tr></tbody></table></div></figure>



<h4 class="wp-block-heading">色見本</h4>



<figure class="wp-block-image"><img decoding="async" src="https://ct-innovation01.xyz/DL-Freetime/wp/wp-content/uploads/2018/06/20170927115343.png" alt="" class="wp-image-114"/></figure>



<p class="wp-block-paragraph"><a rel="noopener" target="_blank" href="http://matplotlib.org/examples/color/named_colors.html">color example code: named_colors.py — Matplotlib 2.0.2 documentation</a></p>



<h2 class="wp-block-heading"><strong>見た目のカスタマイズ</strong>（目盛り線）</h2>



<p class="wp-block-paragraph">以下のコードでは、グリッド線を細かく指定しています。</p>



<pre class="wp-block-preformatted">import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 8, 3, 6, 5]

plt.bar(x,y,label='test',width=0.4)
plt.legend()
<strong><em>plt.grid(True) #目盛り線
plt.title("TEST GRAPH") #グラフタイトル
plt.xlabel("X-label") #X軸ラベル
plt.ylabel("Y-label") #Y軸ラベル</em></strong>
plt.show()</pre>



<figure class="wp-block-image size-full"><img decoding="async" width="639" height="543" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/07/20170928234544.png" alt="" class="wp-image-2168" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/07/20170928234544.png 639w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/07/20170928234544-300x255.png 300w" sizes="(max-width: 639px) 100vw, 639px" /></figure>



<h2 class="wp-block-heading"><strong>複数のデータセットを重ねて描画</strong></h2>



<p class="wp-block-paragraph">複数のデータセットを一つのグラフに重ねて表示することも可能です。また、複数のグラフを上下に並べた配置することも可能です。以下のコードでは、二つのデータセットを折れ線グラフと散布図と棒グラフとして描画しています。</p>



<pre class="wp-block-preformatted">import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 8, 3, 6, 5]
y2 = [8, 2, 4, 3, 7]

<strong><em>plt.subplot(2,1,1)</em></strong>
<strong><em>plt.bar(x,y,label='test',width=0.4,align="center")</em></strong>
<strong><em>plt.bar(x,y2,label='test2',bottom=y,width=0.4,color="green")</em></strong>
<strong><em>plt.plot(x,y,label='test3')</em></strong>
<strong><em>plt.title("TEST GRAPH") #グラフタイトル
plt.xlabel("X-label") #X軸ラベル
plt.ylabel("Y-label") #Y軸ラベル</em></strong>
plt.legend()

plt.subplot(2,1,2)
plt.scatter(x,y,label='test4',s=30)
plt.grid(True) #目盛線
plt.title("TEST GRAPH2") #グラフタイトル
plt.xlabel("X-label2") #X軸ラベル
plt.ylabel("Y-label2") #Y軸ラベル
plt.legend()

plt.tight_layout()
plt.show()</pre>



<figure class="wp-block-image size-full"><img decoding="async" width="641" height="537" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/07/20170928235928.png" alt="" class="wp-image-2167" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/07/20170928235928.png 641w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/07/20170928235928-300x251.png 300w" sizes="(max-width: 641px) 100vw, 641px" /></figure>



<p class="wp-block-paragraph">なお、折れ線グラフと散布図についてはそれぞれこちらの記事を参考にしてください。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-reference">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/programming/python/313/" title="matplotlibの基本: 折れ線グラフの描画方法" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-320x180.png 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-240x135.png 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">matplotlibの基本: 折れ線グラフの描画方法</div><div class="blogcard-snippet internal-blogcard-snippet">本記事では、Pythonのデータ可視化ライブラリであるmatplotlibを使用して、折れ線グラフの描画方法に焦点を当てました。まず、基本的なプロットの手法から始め、その後、グラフの見た目をカスタマイズする方法や複数のデータセットを重ねて表示する方法について解説しました。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2023.12.18</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-reference">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/programming/python/315/" title="matplotlibの基本: 散布図の描画方法" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-320x180.png 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-240x135.png 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">matplotlibの基本: 散布図の描画方法</div><div class="blogcard-snippet internal-blogcard-snippet">本記事では、Pythonのデータ可視化ライブラリであるmatplotlibを使用して、散布図の描画方法に焦点を当てました。まず、基本的なプロットの手法から始め、その後、グラフの見た目をカスタマイズする方法や複数のデータセットを重ねて表示する方法について解説しました。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2018.07.09</div></div></div></div></a>
</div>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">matplotlibを使用して棒グラフを描く方法をまとめます。</p>



<ul class="wp-block-list">
<li>matplotlibはPythonのグラフ描画ライブラリであり、データの可視化に利用される。</li>



<li>棒グラフを描く際には、bar()関数を使用する。</li>



<li>プロットの見た目を変更するには、labelやwidthなどの引数を調整する。</li>



<li>グラフ全体の見た目を変更するには、grid()やtitle()、xlabel()、ylabel()などの関数を使用する。</li>
</ul>



<p class="wp-block-paragraph">以上がmatplotlibを使用して棒グラフを描く方法についての解説です。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/programming/python/310/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>matplotlibの基本: 折れ線グラフの描画方法</title>
		<link>https://www.ct-innovation.blog/dl-freetime/programming/python/313/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/programming/python/313/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Mon, 18 Dec 2023 08:10:00 +0000</pubDate>
				<category><![CDATA[matplotlib]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[plot]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[可視化]]></category>
		<guid isPermaLink="false">http://ct-innovation01.xyz/DL-Freetime/?p=313</guid>

					<description><![CDATA[本記事では、Pythonのデータ可視化ライブラリであるmatplotlibを使用して、折れ線グラフの描画方法に焦点を当てました。まず、基本的なプロットの手法から始め、その後、グラフの見た目をカスタマイズする方法や複数のデ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">本記事では、Pythonのデータ可視化ライブラリであるmatplotlibを使用して、折れ線グラフの描画方法に焦点を当てました。まず、基本的なプロットの手法から始め、その後、グラフの見た目をカスタマイズする方法や複数のデータセットを重ねて表示する方法について解説しました。</p>



<span id="more-313"></span>



<h2 class="wp-block-heading">matplotlibとは</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">プログラミング言語Pythonおよびその科学計算用ライブラリNumPyのためのグラフ描画ライブラリである。オブジェクト指向のAPIを提供しており、様々な種類のグラフを描画する能力を持つ。描画できるのは主に2次元のプロットだが、3次元プロットの機能も追加されてきている。描画したグラフを各種形式の画像（各種ベクトル画像形式も含む）として保存することもできる（Wiki参照）</p>
<cite><a rel="noopener" target="_blank" href="https://ja.wikipedia.org/wiki/Matplotlib">matplotlib &#8211; Wikipedia</a></cite></blockquote>



<h2 class="wp-block-heading"><strong>基本のプロット</strong></h2>



<p class="wp-block-paragraph">まず、matplotlibを使った基本的な折れ線グラフの描画方法を見ていきましょう。以下のコードは、与えられたデータポイントを使って折れ線グラフを描画するシンプルな例です。</p>



<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt

x = &#91;1, 2, 3, 4, 5]
y = &#91;1, 8, 3, 6, 5]

plt.plot(x,y)
plt.show()</code></pre>



<p class="wp-block-paragraph">散布図同様なにも設定がいらなければ、これだけでグラフにできます。なお、散布図の描き方はこちら</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-reference">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/programming/python/315/" title="matplotlibの基本: 散布図の描画方法" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-320x180.png 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-240x135.png 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">matplotlibの基本: 散布図の描画方法</div><div class="blogcard-snippet internal-blogcard-snippet">本記事では、Pythonのデータ可視化ライブラリであるmatplotlibを使用して、散布図の描画方法に焦点を当てました。まず、基本的なプロットの手法から始め、その後、グラフの見た目をカスタマイズする方法や複数のデータセットを重ねて表示する方法について解説しました。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2018.07.09</div></div></div></div></a>
</div>



<p class="wp-block-paragraph">xとyの同じインデックスつまり（１,１）、（２,８）、（３,３）、（４,６）、（５,５）にプロットされています。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="640" height="537" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/20170928002232.png" alt="" class="wp-image-2109" style="object-fit:cover" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/20170928002232.png 640w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/20170928002232-300x252.png 300w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p class="wp-block-paragraph">問題なくプロットされてます。では、前回同様に見た目をカスタマイズしていきます。</p>



<h2 class="wp-block-heading"><strong>見た目のカスタマイズ</strong></h2>



<p class="wp-block-paragraph">折れ線グラフの見た目をカスタマイズすることもできます。以下のコードでは、ラインの太さや色、マーカーの形状などを設定しています。</p>



<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt
x = &#91;1, 2, 3, 4, 5]
y = &#91;1, 8, 3, 6, 5]

plt.plot(x,y,<strong><em>label='test',linewidth=3,color='b',marker='^',markeredgecolor="black"</em></strong>)
<strong><em>plt.legend()</em></strong>　#凡例
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="641" height="538" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/20170928002617.png" alt="" class="wp-image-2110" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/20170928002617.png 641w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/20170928002617-300x252.png 300w" sizes="(max-width: 641px) 100vw, 641px" /></figure>



<h3 class="wp-block-heading">Tips：主要なカスタマイズキーワード</h3>



<p class="wp-block-paragraph">折れ線グラフ作成時に使用できる引数オプションが非常に多くあります。が必要最低限テーブルにまとめた分をおさえて記載します。</p>



<figure class="wp-block-table"><div class="scrollable-table"><table><thead><tr><th>kywd</th><th>入力例</th><th>備考</th></tr></thead><tbody><tr><td>x,y</td><td>[1,2,3,4,5] または 事前に定義したlistなど</td><td>array形式のもの<br><span style="color: #ff0000;">※必須</span></td></tr><tr><td colspan="3"><strong>line関連</strong></td></tr><tr><td>linewidth</td><td>linewidth=5</td><td>ラインの太さ</td></tr><tr><td>linestyle</td><td>linestyle=&#8221;dashdot&#8221;</td><td>ラインの形式<br>solidは実線<br>dashedは破線<br>dashdotは一点鎖線<br>dottedは点線</td></tr><tr><td>color</td><td>color=&#8221;red&#8221; または<br>color=&#8221;#FFFF00&#8243; または<br>color=(1.0,0,1.0)</td><td>ラインの色<br>色名や16進数、RGBでの指定が可能</td></tr><tr><td colspan="3"><strong>marker関連</strong></td></tr><tr><td>marker</td><td>marker=&#8221;s&#8221;</td><td>マーカーの形<br>指定しないと○<br>*は星形など様々指定可</td></tr><tr><td>markersize</td><td>markersize=25/td&gt;</td><td>マーカーのサイズ</td></tr><tr><td>markerfacecolor</td><td>markerfacecolor=&#8221;b&#8221; または<br>markerfacecolor=&#8221;#FFFF00&#8243; ,<br>markerfacecolor=(1.0,0,1.0)</td><td>マーカーの色<br>色名や16進数、RGBでの指定が可能</td></tr><tr><td>markeredgewidth</td><td>markeredgewidth=3</td><td>マーカーの枠の太さ</td></tr><tr><td>markeredgecolor</td><td>markeredgecolor=&#8221;g&#8221; または<br>markeredgecolor=&#8221;#ff0000&#8243; ,<br>markeredgecolor=(0,0,1.0)</td><td>マーカーの枠の色<br>色名や16進数、RGBでの指定が可能</td></tr><tr><td>label</td><td>label=&#8221;label1&#8243;</td><td>凡例名</td></tr></tbody></table></div></figure>



<h4 class="wp-block-heading">色見本</h4>



<p class="wp-block-paragraph"><img decoding="async" width="800" height="500" class="alignnone size-full wp-image-114" src="http://ct-innovation01.xyz/DL-Freetime/wp/wp-content/uploads/2018/06/20170927115343.png" alt=""></p>



<p class="wp-block-paragraph"><a rel="noopener" target="_blank" href="https://matplotlib.org/2.0.2/examples/color/named_colors.html">color example code: named_colors.py — Matplotlib 2.0.2 documentation</a></p>



<h4 class="wp-block-heading">マーカー見本</h4>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="550" height="450" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115416.png" alt="" class="wp-image-2118" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115416.png 550w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115416-300x245.png 300w" sizes="(max-width: 550px) 100vw, 550px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="550" height="450" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115403.png" alt="" class="wp-image-2119" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115403.png 550w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2023/12/20170927115403-300x245.png 300w" sizes="(max-width: 550px) 100vw, 550px" /></figure>
</div>
</div>



<p class="wp-block-paragraph"><a rel="noopener" target="_blank" href="https://matplotlib.org/2.0.2/examples/lines_bars_and_markers/marker_reference.html">lines_bars_and_markers example code: marker_reference.py — Matplotlib 2.0.2 documentation</a></p>



<h2 class="wp-block-heading"><strong>見た目のカスタマイズ</strong>（目盛り線）</h2>



<p class="wp-block-paragraph">以下のコードでは、グリッド線を細かく指定しています。</p>



<pre class="wp-block-code python"><code>import matplotlib.pyplot as plt
x = &#91;1, 2, 3, 4, 5]
y = &#91;1, 8, 3, 6, 5]

plt.plot(x,y,label='test',linewidth=3,color='b',marker='^',markeredgecolor="black")
plt.legend()
<strong><em>plt.minorticks_on()　#副目盛線表示状態
plt.grid(which='major',color='black',linestyle='-')　#目盛線
plt.grid(which='minor',axis='y',color='grey',linestyle='-.')　#副目盛線
plt.xlabel("X-label")　#X軸ラベル
plt.ylabel("Y-label")　#Y軸ラベル</em></strong>
plt.title("TEST GRAPH")　#グラフタイトル
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="640" height="538" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/20170928222355.png" alt="" class="wp-image-2107" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/20170928222355.png 640w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/20170928222355-300x252.png 300w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<h2 class="wp-block-heading"><strong>複数のデータセットを重ねて描画</strong></h2>



<p class="wp-block-paragraph">複数のデータセットを一つのグラフに重ねて表示することも可能です。以下のコードでは、二つのデータセットを折れ線グラフと散布図として同じグラフ上に描画しています。</p>



<pre class="wp-block-preformatted">import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 8, 3, 6, 5]
y2 = [8, 2, 4, 3, 7]

plt.plot(x,y,label='test',linewidth=3,color='b',marker='^',markeredgecolor="black")
<strong><em>plt.scatter(x,y2,s=80, marker='p',c='red',label='test2')</em></strong>
plt.legend()
plt.minorticks_on()
plt.grid(which='major',color='black',linestyle='-') 
plt.grid(which='minor',axis='y',color='grey',linestyle='-.')
plt.xlabel("X-label")
plt.ylabel("Y-label")
plt.title("TEST GRAPH")
plt.show()
</pre>



<figure class="wp-block-image size-full"><img decoding="async" width="642" height="539" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/20170928222518.png" alt="" class="wp-image-2108" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/20170928222518.png 642w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/20170928222518-300x252.png 300w" sizes="(max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph">matplotlibを使うことで簡単に折れ線グラフを描画し、見た目をカスタマイズすることができます。データ解析や可視化において、matplotlibは強力なツールとなりますので、ぜひ活用してみてください。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">本記事では、Pythonのmatplotlibライブラリを使用して折れ線グラフを描画する方法について詳しく解説しました。まず、基本的なプロット方法を紹介し、その後、グラフの見た目やスタイルをカスタマイズする方法について説明しました。さらに、複数のデータセットを同じグラフ上に重ねて表示する方法も示しました。</p>



<p class="wp-block-paragraph">折れ線グラフは、データのトレンドや変化を視覚化するのに非常に有用な手法です。matplotlibを使えば、データサイエンティストや開発者はデータのパターンや関係性を素早く把握することができます。</p>



<p class="wp-block-paragraph">また、matplotlibは豊富なカスタマイズオプションを提供しており、ユーザーは自分のニーズや好みに合わせてグラフをカスタマイズすることができます。この柔軟性により、様々なデータセットに対応した魅力的な可視化を実現することが可能です。</p>



<p class="wp-block-paragraph">総括すると、本記事を通じて、読者はmatplotlibを使用して折れ線グラフを描画し、データを効果的に可視化する方法を学びました。これにより、データ分析や可視化のスキルを向上させ、データに潜むパターンや洞察を発見することができるでしょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/programming/python/313/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
