完整版|Matplotlib 可视化最有价值的 50 个图表

论坛 期权论坛     
选择匿名的用户   2021-5-22 18:38   83   0
<div class="rich_media_content" id="js_content">
<p><img alt="640?wx_fmt&#61;jpeg" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-8b4389b3e4a300075d2bccb6f691c521"></p>
<p><img alt="640?wx_fmt&#61;jpeg" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-6ca7330dcafb5b129b5f731a13ae9159"></p>
<p>from Unsplash by &#64;Mike Enerio</p>
<p></p>
<p>翻译 | Lemon</p>
<p>来源 | Machine Learning Plus</p>
<p></p>
<p></p>
<blockquote>
  <p>本文总结了 Matplotlib 以及 Seaborn 用的最多的50个图形,掌握这些图形的绘制,对于数据分析的可视化有莫大的作用,强烈推荐大家阅读后续内容。</p>
  <p>如果觉得内容不错,欢迎分享到您的朋友圈。</p>
  <p><strong>Tips: </strong></p>
  <p>(1)本文原文部分代码有不准确的地方,已进行修改; </p>
  <p>(2)所有正确的源代码,我已整合到 jupyter notebook 文件中,可以在公众号『Python数据之道』后台回复 “<strong>code</strong>”,可获得本文源代码; </p>
  <p>(3)运行本文代码,除了安装 matplotlib 和 seaborn 可视化库外,还需要安装其他的一些辅助可视化库,已在代码部分作标注,具体内容请查看下面文章内容。</p>
  <p>(4)由于<strong>微信文章总字数不能超过5万字</strong>,删除了部分代码,完整的文章请点击文章底部的<strong>阅读原文</strong>;</p>
</blockquote>
<p></p>
<p>在数据分析和可视化中最有用的 50 个 Matplotlib 图表。这些图表列表允许您使用 python 的 matplotlib 和 seaborn 库选择要显示的可视化对象。</p>
<h2>介绍</h2>
<p>这些图表根据可视化目标的7个不同情景进行分组。例如,如果要想象两个变量之间的关系,请查看“关联”部分下的图表。或者,如果您想要显示值如何随时间变化,请查看“变化”部分,依此类推。</p>
<p>有效图表的重要特征:</p>
<ul class="list-paddingleft-2"><li><p>在不歪曲事实的情况下传达正确和必要的信息。</p></li><li><p>设计简单,您不必太费力就能理解它。</p></li><li><p>从审美角度支持信息而不是掩盖信息。</p></li><li><p>信息没有超负荷。</p></li></ul>
<h2>准备工作</h2>
<p>在代码运行前先引入下面的设置内容。当然,单独的图表,可以重新设置显示要素。</p>
<pre class="blockcode"><code class="language-javascript"># !pip install brewer2mpl
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
import warnings; warnings.filterwarnings(action&#61;&#39;once&#39;)
large &#61; 22; med &#61; 16; small &#61; 12
params &#61; {&#39;axes.titlesize&#39;: large,
          &#39;legend.fontsize&#39;: med,
          &#39;figure.figsize&#39;: (16, 10),
          &#39;axes.labelsize&#39;: med,
          &#39;axes.titlesize&#39;: med,
          &#39;xtick.labelsize&#39;: med,
          &#39;ytick.labelsize&#39;: med,
          &#39;figure.titlesize&#39;: large}
plt.rcParams.update(params)
plt.style.use(&#39;seaborn-whitegrid&#39;)
sns.set_style(&#34;white&#34;)
%matplotlib inline
# Version
print(mpl.__version__)  #&gt; 3.0.0
print(sns.__version__)  #&gt; 0.9.0</code></pre>
<pre class="blockcode"><code class="language-javascript">3.0.2
0.9.0</code></pre>
<h2>一、关联 (Correlation)</h2>
<p>关联图表用于可视化2个或更多变量之间的关系。也就是说,一个变量如何相对于另一个变化。</p>
<h3>1 散点图(Scatter plot)</h3>
<p>散点图是用于研究两个变量之间关系的经典的和基本的图表。如果数据中有多个组,则可能需要以不同颜色可视化每个组。在 matplotlib 中,您可以使用 <code>plt.scatterplot()</code> 方便地执行此操作。</p>
<pre class="blockcode"><code class="language-javascript"># Import dataset
midwest &#61; pd.read_csv(&#34;https://raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv&#34;)
# Prepare Data
# Create as many colors as there are unique midwest[&#39;category&#39;]
categories &#61; np.unique(midwest[&#39;category&#39;])
colors &#61; [plt.cm.tab10(i/float(len(categories)-1)) for i in range(len(categories))]
# Draw Plot for Each Category
plt.figure(figsize&#61;(16, 10), dpi&#61; 80, facecolor&#61;&#39;w&#39;, edgecolor&#61;&#39;k&#39;)
for i, category in enumerate(categories):
    plt.scatter(&#39;area&#39;, &#39;poptotal&#39;,
                data&#61;midwest.loc[midwest.category&#61;&#61;category, :],
                s&#61;20, cmap&#61;colors[i], label&#61;str(category))
    # &#34;c&#61;&#34; 修改为 &#34;cmap&#61;&#34;,Python数据之道 备注
# Decorations
plt.gca().set(xlim&#61;(0.0, 0.1), ylim&#61;(0, 90000),
              xlabel&#61;&#39;Area&#39;, ylabel&#61;&#39;Population&#39;)
plt.xticks(fontsize&#61;12); plt.yticks(fontsize&#61;12)
plt.title(&#34;Scatterplot of Midwest Area vs Population&#34;, fontsize&#61;22)
plt.legend(fontsize&#61;12)     
plt.show()    </code></pre>
<p><img alt="640?wx_fmt&#61;png" src="https://beijingopt
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP