<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>可视化 on 桃花岛种桃</title><link>https://blog.kangq.wang/tags/%E5%8F%AF%E8%A7%86%E5%8C%96/</link><description>Recent content in 可视化 on 桃花岛种桃</description><generator>Hugo -- 0.155.3</generator><language>zh-cn</language><lastBuildDate>Tue, 30 Apr 2024 06:42:56 +0000</lastBuildDate><atom:link href="https://blog.kangq.wang/tags/%E5%8F%AF%E8%A7%86%E5%8C%96/index.xml" rel="self" type="application/rss+xml"/><item><title>用 Pyecharts 绘制足迹地图</title><link>https://blog.kangq.wang/yongpyechartshuizhizu/</link><pubDate>Sun, 13 Aug 2023 12:11:33 +0000</pubDate><guid>https://blog.kangq.wang/yongpyechartshuizhizu/</guid><description>&lt;p&gt;之前上网发现一个好玩的在线工具：&lt;a href="https://lab.magiconch.com/china-ex/"&gt;中国制霸生成器&lt;/a&gt;，可以标记去过的地方，制作自己的足迹地图。&lt;/p&gt;
&lt;p&gt;但这个工具只能标记省级行政区，有些颗粒度太粗，比如去过郫县，在地图上就会体现为去过四川。于是想看看有其他工具没有。然后发现 Pyecharts 可以绘制地图，设置一下就能生成足迹地图，而且生成的是可以交互的地图 html 文件，不是图片。如果想要图片进行分享，截个图就 OK。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;Pyecharts是个Python的绘图库，除了地图，还能绘制其他很多类型的可视化图像，具体可参考&lt;a href="https://pyecharts.org"&gt;Pyechart官网&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>用 seaborn 绘制数据分布统计图</title><link>https://blog.kangq.wang/yongseabornhuizhishu/</link><pubDate>Mon, 21 Nov 2022 14:09:10 +0000</pubDate><guid>https://blog.kangq.wang/yongseabornhuizhishu/</guid><description>&lt;p&gt;数据文件为 Libreoffice 编制的 ods 类型，为了能直接读取 ods 文件生成 dataframe 格式数据，安装 pandas_ods_reader 包。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt" id="hl-0-1"&gt;&lt;a class="lnlinks" href="#hl-0-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install pandas_ods_reader
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;然后导入相关库，读取数据。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt" id="hl-1-1"&gt;&lt;a class="lnlinks" href="#hl-1-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-1-2"&gt;&lt;a class="lnlinks" href="#hl-1-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-1-3"&gt;&lt;a class="lnlinks" href="#hl-1-3"&gt;3&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-1-4"&gt;&lt;a class="lnlinks" href="#hl-1-4"&gt;4&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-1-5"&gt;&lt;a class="lnlinks" href="#hl-1-5"&gt;5&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-1-6"&gt;&lt;a class="lnlinks" href="#hl-1-6"&gt;6&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-1-7"&gt;&lt;a class="lnlinks" href="#hl-1-7"&gt;7&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;seaborn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;sns&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;pandas_ods_reader&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;read_ods&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;matplotlib&lt;/span&gt; &lt;span class="n"&gt;inline&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ffftime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;read_ods&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;dataset.ods&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt" id="hl-2-1"&gt;&lt;a class="lnlinks" href="#hl-2-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-2-2"&gt;&lt;a class="lnlinks" href="#hl-2-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-2-3"&gt;&lt;a class="lnlinks" href="#hl-2-3"&gt;3&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 挑取目标列数据&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;thedata&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ffftime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;loc&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ffftime&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;人种&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;黄&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;连续输出1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;thedata&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;pre&gt;&lt;code&gt;195
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;目标列中一共有 195 个待分析数据。对这些数据绘制直方图，查看各数据段内的分布占比，图中柱宽为 2。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt" id="hl-3-1"&gt;&lt;a class="lnlinks" href="#hl-3-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-3-2"&gt;&lt;a class="lnlinks" href="#hl-3-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-3-3"&gt;&lt;a class="lnlinks" href="#hl-3-3"&gt;3&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-3-4"&gt;&lt;a class="lnlinks" href="#hl-3-4"&gt;4&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-3-5"&gt;&lt;a class="lnlinks" href="#hl-3-5"&gt;5&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-3-6"&gt;&lt;a class="lnlinks" href="#hl-3-6"&gt;6&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-3-7"&gt;&lt;a class="lnlinks" href="#hl-3-7"&gt;7&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-3-8"&gt;&lt;a class="lnlinks" href="#hl-3-8"&gt;8&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-3-9"&gt;&lt;a class="lnlinks" href="#hl-3-9"&gt;9&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 绘制密度分布图&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;rc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;axes.unicode_minus&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;sns&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;notebook&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;ticks&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;simhei&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;rc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;rc&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sns&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;histplot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;thedata&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;连续输出1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;binwidth&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stat&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;proportion&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ax&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_xticks&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ax&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_ylabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;占比&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fontsize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ax&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_xlabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;连续输出时间/min&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fontsize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ax&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;连续输出时间样本统计&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fontsize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;img alt="nb_4_1.png" loading="lazy" src="https://bode-1257862934.file.myqcloud.com/img/1c831d0477ef05c5584ca61816e83a3a.nb_4_1.png"&gt;&lt;/p&gt;
&lt;p&gt;从占比直方图可以看出，5~7min 为占比最多区间，大约的18.5%样本落在此区间。&lt;/p&gt;</description></item><item><title>设置 seaborn 绘图中的字体及字体大小</title><link>https://blog.kangq.wang/shezhiseabornhuitu/</link><pubDate>Wed, 24 Nov 2021 00:00:00 +0000</pubDate><guid>https://blog.kangq.wang/shezhiseabornhuitu/</guid><description>&lt;h1 id="1-设置-seaborn-绘图中的字体"&gt;1 设置 seaborn 绘图中的字体&lt;/h1&gt;
&lt;p&gt;Seaborn 基于 Matplotlib，Matplotlib 基于 Python，Python 运行于电脑系统中。&lt;/p&gt;
&lt;p&gt;因此，要在 Seaborn 中使用某款字体，该字体要满足以下条件：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;字体已安装在系统中；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Python 能检索到此字体；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Matplotlib 字体缓存中能检索到此字体；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;绘图时在 Seaborn 中设置使用该字体。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;!-- more --&gt;
&lt;h2 id="11-在电脑上安装字体"&gt;1.1 在电脑上安装字体&lt;/h2&gt;
&lt;p&gt;以「文泉驿微米黑」字体为例，下载到的字体安装包为「文泉驿微米黑.ttf」，双击会自动打开系统自带的字体管理器，点击安装既可。&lt;/p&gt;</description></item><item><title>用 seaborn 绘图，分析西北七市潮湿度变化</title><link>https://blog.kangq.wang/yongseabornhuitufen/</link><pubDate>Tue, 16 Nov 2021 00:00:00 +0000</pubDate><guid>https://blog.kangq.wang/yongseabornhuitufen/</guid><description>&lt;p&gt;年初写了篇文章&lt;a href="https://blog.3gek.cc/post/7"&gt;《2020 年，西安气温变舒适了》&lt;/a&gt;，通过对过去几年平均月度气温的分析，可看出： &lt;strong&gt;2020 年西安确实变温暖了，但夏天却比其他年份要稍微凉快点。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;根据生活体验，除了气温，感觉近几年也越来越潮湿。年中网上有篇文章，标题大意是「西北地区正变得湿热，西安恐成最大赢家」，这说法相当惊艳。反正找数据，顺带找来西北七个市区的，一同分析下是不是这样。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;气相数据集来自一款软件「小麦芽」，内容为各地气象站逐年数据，分别是：泾河站（西安）、榆中站（兰州）、银川站、酒泉站、西宁站、格尔木站、乌鲁木齐站。有五个气象站位于西北五省省会，甘肃和青海因为地域太广袤，各选了距离一千多公里的两个气相站。数据集中与潮湿有关的参数有四个：年降水量、年降水天数、露点温度、单日最大降水量。&lt;/p&gt;</description></item><item><title>学习 seaborn [07]: 绘制累积条形图</title><link>https://blog.kangq.wang/xuexiseaborn07hui/</link><pubDate>Mon, 08 Nov 2021 14:56:20 +0000</pubDate><guid>https://blog.kangq.wang/xuexiseaborn07hui/</guid><description>&lt;!--
.. title: 学习 seaborn [07]: 绘制累积条形图
.. slug: seaborn-histplot
.. date: 2021-11-8
.. tags: python,seaborn,可视化
.. category: 数据分析
.. link:
.. description:
.. type: text
--&gt;
&lt;h1 id="使用-seaborn-绘制累积条形图"&gt;使用 seaborn 绘制累积条形图&lt;/h1&gt;
&lt;p&gt;最近想看下某地区近几年降雨量如何变化，获得的数据是分年分月的，打算绘制按年份累积每月降雨量的条形图。搜索教程，主要有以下几种方法。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;方法1：使用 seaborn 的 &lt;code&gt;barplot()&lt;/code&gt; 函数，在 x 相同位置，分别绘制1&lt;del&gt;12月累积量、1&lt;/del&gt;11月累积量、1~10月累积量，以此类推直至1月降雨量。每次绘制使用颜色不同，后绘制的相当于把前绘制的条状遮住一部分。需要调用12次 &lt;code&gt;barplot()&lt;/code&gt; 函数。&lt;a href="https://blog.csdn.net/zhousishuo/article/details/75330506"&gt;参考文章点这里&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;方法2：使用 matplotlib 的 &lt;code&gt;bar()&lt;/code&gt; 函数，按年分别绘制每月的降雨量条形图，通过参数&lt;code&gt;bottom&lt;/code&gt;指定所绘制的月份条形图下方是哪个月的条形图，相当于一层一层的柱子码起来。需要调用12次 &lt;code&gt;bar()&lt;/code&gt; 函数。&lt;a href="https://hg95.github.io/matplotlib_seaborn/Chapter4/%E5%A0%86%E5%8F%A0%E6%9F%B1%E7%8A%B6%E5%9B%BE.html"&gt;参考文章点这里&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;方法3：使用 seaborn 的 &lt;code&gt;histplot()&lt;/code&gt; 函数，设置 &lt;code&gt;multiple&lt;/code&gt; 参数为 &lt;code&gt;stack&lt;/code&gt;，&lt;code&gt;weights&lt;/code&gt; 参数为需要累积的量，既可绘制累积条形图。只需条用1次 &lt;code&gt;histplot()&lt;/code&gt; 函数。&lt;a href="https://www.pythoncharts.com/python/stacked-bar-charts"&gt;参考文章点这里&lt;/a&gt;。这篇文章另外还介绍了如何使用 matplotlib、pandas、plotnine、altair 绘制累积条形图。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;前两种方法太繁琐，采用第3种方法。搜相关教程有个感悟，要想快速准确找到资料，搜英文文章，或者直接在 seaborn 官方教程找。&lt;/p&gt;</description></item><item><title>《可视化沟通》读后</title><link>https://blog.kangq.wang/keshihuagoutong/</link><pubDate>Sat, 12 Nov 2016 00:00:00 +0000</pubDate><guid>https://blog.kangq.wang/keshihuagoutong/</guid><description>&lt;p&gt;&lt;img alt="Untitled Image" loading="lazy" src="https://bode-1257862934.file.myqcloud.com/farbox-image/DCLyq"&gt;&lt;/p&gt;
&lt;p&gt;这本书可以作为了解信息图的入门，所讲内容更贴切于互联网行业和广告营销方面。对于科研或工程行业，要用信息图表达一些严肃且全面的内容，可能就不能按作者在本书所讲的方式去处理信息图。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;总结了一些自己觉得有用的内容。&lt;/p&gt;
&lt;h1 id="信息图的意义"&gt;信息图的意义&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;创造语境来表达数据或流程，以致数据或流程能够被理解。
&lt;ol&gt;
&lt;li&gt;并不是所有信息图都需要统计数据，如地铁线路图、摇滚乐发展历史之类的信息图就没有数据可视化；&lt;/li&gt;
&lt;li&gt;创造语境经常用对比的方式，如用全世界人口数来对比网民人数，体现网络的普及。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;信息图的优点来自于「图像优势」，即图像比文字更能加深记忆。
&lt;ol&gt;
&lt;li&gt;信息图的图像需与数据相关；&lt;/li&gt;
&lt;li&gt;图像元素主要是数据可视化和插画。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;「对于信息图中传递的任何信息，读者们都应该保持怀疑，大部分人没有太强的批判性思考精神」。&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id="信息图分类"&gt;信息图分类&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;作为可视化解释的信息图：不含有数据可视化，但用图像来表达主题。&lt;/p&gt;</description></item></channel></rss>