<?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>Python on 桃花岛种桃</title><link>https://blog.kangq.wang/tags/python/</link><description>Recent content in Python 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/python/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 [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>学习 pandas [02]: 二进制操作</title><link>https://blog.kangq.wang/xuexipandas02er/</link><pubDate>Sat, 23 Jan 2021 08:53:12 +0000</pubDate><guid>https://blog.kangq.wang/xuexipandas02er/</guid><description>&lt;hr&gt;
&lt;p&gt;title: 学习 pandas [02]: 二进制操作
slug: er-jin-zhi-cao-zuo
date: 2021-1-23
tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pandas&lt;/li&gt;
&lt;li&gt;Jupyter&lt;/li&gt;
&lt;li&gt;python
category: 数据分析
link:
description:
type: text&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1 id="二进制操作"&gt;二进制操作&lt;/h1&gt;
&lt;p&gt;Pandas数据结构之间执行二进制操作，要注意下列两个关键点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DataFrame与Series之间的广播机制；&lt;/li&gt;
&lt;li&gt;计算中的缺失值处理。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="加减乘除取模"&gt;加、减、乘、除、取模&lt;/h2&gt;
&lt;p&gt;DataFrame支持以下运算操作中对Series进行广播：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;add()：加&lt;/li&gt;
&lt;li&gt;sub()：减&lt;/li&gt;
&lt;li&gt;mul()：乘&lt;/li&gt;
&lt;li&gt;div()：除&lt;/li&gt;
&lt;li&gt;radd()&lt;/li&gt;
&lt;li&gt;rsub()&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在以上方法使用中，通过&lt;code&gt;axis&lt;/code&gt;参数，指定沿&lt;code&gt;index&lt;/code&gt;或&lt;code&gt;columns&lt;/code&gt;广播。&lt;/p&gt;</description></item><item><title>学习 pandas [01]: 数据结构</title><link>https://blog.kangq.wang/xuexipandas01shu/</link><pubDate>Sun, 27 Dec 2020 08:50:57 +0000</pubDate><guid>https://blog.kangq.wang/xuexipandas01shu/</guid><description>&lt;hr&gt;
&lt;p&gt;title: 学习 pandas [01]: 数据结构
slug: series-and-dataframe
date: 2020-12-27
tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pandas&lt;/li&gt;
&lt;li&gt;Jupyter&lt;/li&gt;
&lt;li&gt;python
category: 数据分析
link:
description:
type: text&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1 id="数据结构"&gt;数据结构&lt;/h1&gt;
&lt;p&gt;pandas的数据类型主要有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Series，类似一维数组&lt;/li&gt;
&lt;li&gt;DataFrame，类似二维数组&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- more --&gt;
&lt;h2 id="series"&gt;Series&lt;/h2&gt;
&lt;h3 id="创建series"&gt;创建Series&lt;/h3&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;pd.Series(data, index=index)
&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;code&gt;data&lt;/code&gt;：可以是字典、一维数组、标量&lt;/p&gt;
&lt;p&gt;&lt;code&gt;index&lt;/code&gt;：索引列表，可以理解为行标签，根据&lt;code&gt;Data&lt;/code&gt;的类型而不同。&lt;/p&gt;
&lt;h4 id="通过字典创建series"&gt;通过字典创建Series&lt;/h4&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;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 通过字典创建，自动采用键值作为索引，若不指定index，则顺序同字典&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;d&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;b&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 class="s1"&gt;&amp;#39;a&amp;#39;&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="s1"&gt;&amp;#39;c&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&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;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Series&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&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;s&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;b 1
a 0
c 2
dtype: int64
&lt;/code&gt;&lt;/pre&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;span class="lnt" id="hl-2-4"&gt;&lt;a class="lnlinks" href="#hl-2-4"&gt;4&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;# 通过字典创建，自动采用键值作为索引，若指定index（包含键值），则顺序同index&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# index中若含有字典中不存在的键值，则Series中对应的值为NaN&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Series&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;index&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;a&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;b&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;c&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;d&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;s&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;a 0.0
b 1.0
c 2.0
d NaN
dtype: float64
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id="通过一维数组创建series"&gt;通过一维数组创建Series&lt;/h4&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;/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="n"&gt;l&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;6&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 若不指定index，则自动生成数值型索引&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Series&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&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;s&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;0 0.215224
1 0.803700
2 1.141428
3 0.526450
4 0.577533
5 1.051918
dtype: float64
&lt;/code&gt;&lt;/pre&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-4-1"&gt;&lt;a class="lnlinks" href="#hl-4-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-4-2"&gt;&lt;a class="lnlinks" href="#hl-4-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-4-3"&gt;&lt;a class="lnlinks" href="#hl-4-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;# 若指定index，则长度必须与数组相同&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Series&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;index&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;a&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;b&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;c&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;d&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;e&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;f&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;s&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;a 0.215224
b 0.803700
c 1.141428
d 0.526450
e 0.577533
f 1.051918
dtype: float64
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id="通过标量值创建series"&gt;通过标量值创建Series&lt;/h4&gt;
&lt;p&gt;此方法创建出的Series，每行值都相同。&lt;/p&gt;</description></item><item><title>学习 seaborn [06]: 设置中文显示</title><link>https://blog.kangq.wang/xuexiseaborn06she/</link><pubDate>Wed, 16 Dec 2020 08:22:42 +0000</pubDate><guid>https://blog.kangq.wang/xuexiseaborn06she/</guid><description/></item><item><title>学习 seaborn [05]: 调色板</title><link>https://blog.kangq.wang/xuexiseaborn05diao/</link><pubDate>Mon, 14 Dec 2020 08:20:53 +0000</pubDate><guid>https://blog.kangq.wang/xuexiseaborn05diao/</guid><description>&lt;hr&gt;
&lt;p&gt;title: 学习 seaborn [05]: 调色板
slug: color-seaborn
date: 2020-12-14
tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;seaborn&lt;/li&gt;
&lt;li&gt;python
category: 数据分析
link:
description:
type: text&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1 id="选择调色板"&gt;选择调色板&lt;/h1&gt;
&lt;p&gt;调色板是一组颜色搭配方案，绘图时候程序从中选取颜色进行数据可视化。调色板中颜色之间的色相、饱和度、明度等差异，区别出不同系列的数据关系，因此调色板比其他元素更加影响绘图的视觉效果。&lt;/p&gt;
&lt;p&gt;seaborn提供了一些现成的配色方案，也可以利用其提供的函数自定义调色板。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h2 id="调色板分类"&gt;调色板分类&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;定性调色板&lt;/strong&gt;：一组在视觉上有差异的颜色，用于区分不具有内在顺序的离散数据；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;顺序调色板&lt;/strong&gt;：一组视觉温度递增或递减的颜色，一般是单一色相，也可以是多种色相，用于当数据集的范围从相对低值(不感兴趣)到相对高值(很感兴趣)时；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;发散调色板&lt;/strong&gt;：一组颜色的中间位置颜色的视觉温度最亮或最暗，然后分别向两端递增或递减，用于当数据集的低值和高值都很重要，且数据集中有明确定义的中点时。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="生成调色板的函数"&gt;生成调色板的函数&lt;/h2&gt;
&lt;h3 id="可生成三种调色板的函数"&gt;可生成三种调色板的函数&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;color_palette()&lt;/code&gt;：生成调色盘，接受所有的seaborn调色板或者matplotlib Colormap或者Color Brewer库的配色方案，返回RGB元组的列表；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;set_palette()&lt;/code&gt;：接受与&lt;code&gt;color_palette()&lt;/code&gt;相同参数，设置所有图像的默认配色方案；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;xkcd_rgb()&lt;/code&gt;：使用xkcd颜色名字设置单一颜色；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;xkcd_palette()&lt;/code&gt;：使用xkcd颜色名字生成调色板，适用于各种调色板；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;choose_colorbrewer_palette()&lt;/code&gt;：通过交互式组件辅助进行Color Brewer库的配色方案选择，适用于各种调色板，只能在Jupyter Notebook中使用；&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="用于生成定性调色板的函数"&gt;用于生成定性调色板的函数&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;hls_palette()&lt;/code&gt;：使用hls颜色空间生成间距相等的颜色（色调变化，明度和饱和度不变），适用于&lt;strong&gt;定性调色板&lt;/strong&gt;；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;husl_palette()&lt;/code&gt;：使用HSLuv颜色空间生成间距相等的颜色，比上述hls更符合人眼视觉感受，适用于&lt;strong&gt;定性调色板&lt;/strong&gt;；&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="用于生成顺序调色板的函数"&gt;用于生成顺序调色板的函数&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cubehelix_palette()&lt;/code&gt;：使用cubehelix调色板系统生成配色方案，适合黑白打印，且对色盲友好，适用于&lt;strong&gt;顺序调色板&lt;/strong&gt;；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;choose_cubehelix_palette()&lt;/code&gt;：通过交互式组件辅助进行cubehelix调色板的配色方案选择，只能在Jupyter Notebook中使用；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;light_palette()&lt;/code&gt;和&lt;code&gt;dark_palette()&lt;/code&gt;：指定一个颜色，会由明向暗或由暗向明生成一组颜色，适用于&lt;strong&gt;顺序调色板&lt;/strong&gt;；&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="用于生成发散调色板的函数"&gt;用于生成发散调色板的函数&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;diverging_palette()&lt;/code&gt;：用来创建&lt;strong&gt;发散调色板&lt;/strong&gt;；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;choose_diverging_palette()&lt;/code&gt;：通过交互式组件辅助进行发散调色板的配色方案选择，使用HSLuv颜色空间，只能在Jupyter Notebook中使用；&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="生成调色板的方式"&gt;生成调色板的方式&lt;/h2&gt;
&lt;p&gt;seaborn中生成调色板的方式大致有三种：&lt;/p&gt;</description></item><item><title>学习 seaborn [04]: 修改样式、移动座标轴</title><link>https://blog.kangq.wang/xuexiseaborn04xiu/</link><pubDate>Fri, 11 Dec 2020 08:09:45 +0000</pubDate><guid>https://blog.kangq.wang/xuexiseaborn04xiu/</guid><description>&lt;hr&gt;
&lt;p&gt;title: 学习 seaborn [04]: 修改样式、移动座标轴
slug: beautify-seaborn
date: 2020-12-11 16:23:05
tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;seaborn&lt;/li&gt;
&lt;li&gt;python
category: 数据分析
link:
description:
type: text&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1 id="控制图像的美学样式"&gt;控制图像的美学样式&lt;/h1&gt;
&lt;p&gt;相比与matplotlib详细的样式设置，seaborn提供了成套的样式主题可供直接使用，同时提供高级设置接口供用户自定义主题。&lt;/p&gt;
&lt;p&gt;以装修房子比喻，用matplotlib就像全部考自己装修，窗台、地砖、墙壁等细节都要自己考虑，费时费力但高度可定制化。而用seaborn相当于从装修公司已设计好的装修方案中挑选一个，然后还能在此基础进行部分的修改定制。&lt;/p&gt;</description></item><item><title>学习 seaborn [03]: 线性回归图</title><link>https://blog.kangq.wang/xuexiseaborn03xian/</link><pubDate>Wed, 09 Dec 2020 08:46:26 +0000</pubDate><guid>https://blog.kangq.wang/xuexiseaborn03xian/</guid><description>&lt;hr&gt;
&lt;p&gt;title: 学习 seaborn [03]: 线性回归图
slug: lmplot
date: 2020-12-9
tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;seaborn&lt;/li&gt;
&lt;li&gt;python
category: 数据分析
link:
description:
type: text&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1 id="线性关系可视化"&gt;线性关系可视化&lt;/h1&gt;
&lt;p&gt;此线性可视化并非统计关系中的折线图，而是excel做图中的趋势线概念，对x、y关系进行线性拟合得到关系式，对关系式的绘图。&lt;/p&gt;
&lt;p&gt;seaborn的线性可视化不直接提供拟合关系式的各具体参数，只绘制出趋势线和置信区间，从而引导和帮助进行数据关系探索。&lt;/p&gt;
&lt;p&gt;主要用到两个函数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lmplot()：FacetGrid级函数，可绘制多子图；将data作为必须参数，x和y变量必须被指定为字符串。&lt;/li&gt;
&lt;li&gt;regplot()：轴级函数。x和y可以是简单的 numpy 数组，pandas Series对象，或者作为对传递给data的 pandas DataFrame对象。&lt;/li&gt;
&lt;/ul&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;span class="lnt" id="hl-0-2"&gt;&lt;a class="lnlinks" href="#hl-0-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-3"&gt;&lt;a class="lnlinks" href="#hl-0-3"&gt;3&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-4"&gt;&lt;a class="lnlinks" href="#hl-0-4"&gt;4&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-5"&gt;&lt;a class="lnlinks" href="#hl-0-5"&gt;5&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-6"&gt;&lt;a class="lnlinks" href="#hl-0-6"&gt;6&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-7"&gt;&lt;a class="lnlinks" href="#hl-0-7"&gt;7&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-8"&gt;&lt;a class="lnlinks" href="#hl-0-8"&gt;8&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;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&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 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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;tips&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;seaborn-data-master/tips.csv&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;display&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tips&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;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;total_bill&lt;/th&gt;
&lt;th&gt;tip&lt;/th&gt;
&lt;th&gt;sex&lt;/th&gt;
&lt;th&gt;smoker&lt;/th&gt;
&lt;th&gt;day&lt;/th&gt;
&lt;th&gt;time&lt;/th&gt;
&lt;th&gt;size&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;0&lt;/th&gt;
&lt;td&gt;16.99&lt;/td&gt;
&lt;td&gt;1.01&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Sun&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;1&lt;/th&gt;
&lt;td&gt;10.34&lt;/td&gt;
&lt;td&gt;1.66&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Sun&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;2&lt;/th&gt;
&lt;td&gt;21.01&lt;/td&gt;
&lt;td&gt;3.50&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Sun&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;3&lt;/th&gt;
&lt;td&gt;23.68&lt;/td&gt;
&lt;td&gt;3.31&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Sun&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;td&gt;24.59&lt;/td&gt;
&lt;td&gt;3.61&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Sun&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;...&lt;/th&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;239&lt;/th&gt;
&lt;td&gt;29.03&lt;/td&gt;
&lt;td&gt;5.92&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Sat&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;240&lt;/th&gt;
&lt;td&gt;27.18&lt;/td&gt;
&lt;td&gt;2.00&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Sat&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;241&lt;/th&gt;
&lt;td&gt;22.67&lt;/td&gt;
&lt;td&gt;2.00&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Sat&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;242&lt;/th&gt;
&lt;td&gt;17.82&lt;/td&gt;
&lt;td&gt;1.75&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Sat&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;243&lt;/th&gt;
&lt;td&gt;18.78&lt;/td&gt;
&lt;td&gt;3.00&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Thur&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;244 rows × 7 columns&lt;/p&gt;</description></item><item><title>学习 seaborn [02]: 条形图、线箱图 &amp; 分类散点图</title><link>https://blog.kangq.wang/xuexiseaborn02tiao/</link><pubDate>Thu, 03 Dec 2020 06:06:00 +0000</pubDate><guid>https://blog.kangq.wang/xuexiseaborn02tiao/</guid><description>&lt;h1 id="可视化分类数据"&gt;可视化分类数据&lt;/h1&gt;
&lt;p&gt;可视化分类数据的统一FacetGrid图级接口为catplot()函数，通过&lt;code&gt;kind&lt;/code&gt;参数，可以选择轴级函数有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;分类散点图:
&lt;ul&gt;
&lt;li&gt;stripplot() (with kind=&amp;ldquo;strip&amp;rdquo;; the default)&lt;/li&gt;
&lt;li&gt;swarmplot() (with kind=&amp;ldquo;swarm&amp;rdquo;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;分类分布图:
&lt;ul&gt;
&lt;li&gt;boxplot() (with kind=&amp;ldquo;box&amp;rdquo;)&lt;/li&gt;
&lt;li&gt;violinplot() (with kind=&amp;ldquo;violin&amp;rdquo;)&lt;/li&gt;
&lt;li&gt;boxenplot() (with kind=&amp;ldquo;boxen&amp;rdquo;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;分类估计图:
&lt;ul&gt;
&lt;li&gt;pointplot() (with kind=&amp;ldquo;point&amp;rdquo;)&lt;/li&gt;
&lt;li&gt;barplot() (with kind=&amp;ldquo;bar&amp;rdquo;)&lt;/li&gt;
&lt;li&gt;countplot() (with kind=&amp;ldquo;count&amp;rdquo;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- more --&gt;
&lt;h2 id="条形图"&gt;条形图&lt;/h2&gt;
&lt;p&gt;绘制两种不同的条形图：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;barplot() 或 catplot(kind=&amp;lsquo;bar&amp;rsquo;)：x为分类，y为该分类下的数据的估计值；需要给x、y赋值。&lt;/li&gt;
&lt;li&gt;countplot() 或 catplot(kind=&amp;lsquo;count&amp;rsquo;)：x为分类，y为该分类下的数据的数量；只需给x赋值。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;两种图形的其他参数使用方法一致。&lt;/p&gt;</description></item><item><title>学习 seaborn [01]: 散点图 &amp; 线型图</title><link>https://blog.kangq.wang/xuexiseaborn01san/</link><pubDate>Mon, 30 Nov 2020 08:58:29 +0000</pubDate><guid>https://blog.kangq.wang/xuexiseaborn01san/</guid><description>&lt;hr&gt;
&lt;p&gt;title: 学习 seaborn [01]: 散点图 &amp;amp; 线型图
slug: seaborn-scatter-line
date: 2020-11-30
tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;seaborn&lt;/li&gt;
&lt;li&gt;python
category: 数据分析
link:
description:
type: text&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1 id="可视化统计关系"&gt;可视化统计关系&lt;/h1&gt;
&lt;p&gt;表示统计关系的图分为散点图和线型图两类。统一的FacetGrid图级接口函数为relplot()。&lt;/p&gt;
&lt;h2 id="散点图"&gt;散点图&lt;/h2&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;span class="lnt" id="hl-0-2"&gt;&lt;a class="lnlinks" href="#hl-0-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-3"&gt;&lt;a class="lnlinks" href="#hl-0-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-4"&gt;&lt;a class="lnlinks" href="#hl-0-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-5"&gt;&lt;a class="lnlinks" href="#hl-0-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-6"&gt;&lt;a class="lnlinks" href="#hl-0-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-7"&gt;&lt;a class="lnlinks" href="#hl-0-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-8"&gt;&lt;a class="lnlinks" href="#hl-0-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-9"&gt;&lt;a class="lnlinks" href="#hl-0-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-10"&gt;&lt;a class="lnlinks" href="#hl-0-10"&gt;10&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="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="c1"&gt;# seaborn预设主题：darkgrid（默认），whitegrid，dark，white 以及 ticks&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 导入数据集。由于sns.load_dataset连接不上服务器，使用pandas导入本地下载的数据集&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;tips&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;seaborn-data-master/tips.csv&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;display&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tips&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;!-- more --&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;total_bill&lt;/th&gt;
&lt;th&gt;tip&lt;/th&gt;
&lt;th&gt;sex&lt;/th&gt;
&lt;th&gt;smoker&lt;/th&gt;
&lt;th&gt;day&lt;/th&gt;
&lt;th&gt;time&lt;/th&gt;
&lt;th&gt;size&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;0&lt;/th&gt;
&lt;td&gt;16.99&lt;/td&gt;
&lt;td&gt;1.01&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Sun&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;1&lt;/th&gt;
&lt;td&gt;10.34&lt;/td&gt;
&lt;td&gt;1.66&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Sun&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;2&lt;/th&gt;
&lt;td&gt;21.01&lt;/td&gt;
&lt;td&gt;3.50&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Sun&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;3&lt;/th&gt;
&lt;td&gt;23.68&lt;/td&gt;
&lt;td&gt;3.31&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Sun&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;td&gt;24.59&lt;/td&gt;
&lt;td&gt;3.61&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Sun&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;...&lt;/th&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;239&lt;/th&gt;
&lt;td&gt;29.03&lt;/td&gt;
&lt;td&gt;5.92&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Sat&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;240&lt;/th&gt;
&lt;td&gt;27.18&lt;/td&gt;
&lt;td&gt;2.00&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Sat&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;241&lt;/th&gt;
&lt;td&gt;22.67&lt;/td&gt;
&lt;td&gt;2.00&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Sat&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;242&lt;/th&gt;
&lt;td&gt;17.82&lt;/td&gt;
&lt;td&gt;1.75&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Sat&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;243&lt;/th&gt;
&lt;td&gt;18.78&lt;/td&gt;
&lt;td&gt;3.00&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Thur&lt;/td&gt;
&lt;td&gt;Dinner&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;244 rows × 7 columns&lt;/p&gt;</description></item><item><title>利用 Python 计算基金组合指数</title><link>https://blog.kangq.wang/liyongpythonjisuan/</link><pubDate>Fri, 13 Nov 2020 07:20:22 +0000</pubDate><guid>https://blog.kangq.wang/liyongpythonjisuan/</guid><description>&lt;p&gt;练习Python，计算指数基金组合对应的指数，并绘制变化趋势。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h1 id="基金组合信息"&gt;基金组合信息&lt;/h1&gt;
&lt;p&gt;基金组合中一共有 7 支基金，分别为a,b,c,d,e,f,g。创建一个 Dataframe 用来存放各支基金在组合中的份额占比以及跟踪的指数。指数代码从&lt;a href="http://vip.stock.finance.sina.com.cn/mkt/#hs_s"&gt;新浪财经&lt;/a&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-0-1"&gt;&lt;a class="lnlinks" href="#hl-0-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-2"&gt;&lt;a class="lnlinks" href="#hl-0-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-3"&gt;&lt;a class="lnlinks" href="#hl-0-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-4"&gt;&lt;a class="lnlinks" href="#hl-0-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-5"&gt;&lt;a class="lnlinks" href="#hl-0-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-6"&gt;&lt;a class="lnlinks" href="#hl-0-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-7"&gt;&lt;a class="lnlinks" href="#hl-0-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-8"&gt;&lt;a class="lnlinks" href="#hl-0-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-9"&gt;&lt;a class="lnlinks" href="#hl-0-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-10"&gt;&lt;a class="lnlinks" href="#hl-0-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-11"&gt;&lt;a class="lnlinks" href="#hl-0-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-12"&gt;&lt;a class="lnlinks" href="#hl-0-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-13"&gt;&lt;a class="lnlinks" href="#hl-0-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-14"&gt;&lt;a class="lnlinks" href="#hl-0-14"&gt;14&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;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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;data1&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;rate&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.2097&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.0989&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.0966&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.0884&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.2174&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.1906&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.0984&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="s1"&gt;&amp;#39;indexname&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;上证指数&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="s1"&gt;&amp;#39;中证500&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="s1"&gt;&amp;#39;沪深300&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="s1"&gt;&amp;#39;上证指数&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="s1"&gt;&amp;#39;上证指数&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="s1"&gt;&amp;#39;深证金融地产行业指数&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="s1"&gt;&amp;#39;上证指数&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="s1"&gt;&amp;#39;indexnum&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;sh000001&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sh000905&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sh000300&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sh000001&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sh000001&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sz399619&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sh000001&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="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;df1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;abcdefg&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;display&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df1&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&gt;
&lt;table border="1" class="dataframe"&gt;
&lt;thead&gt;
&lt;tr style="text-align: right;"&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;rate&lt;/th&gt;
&lt;th&gt;indexname&lt;/th&gt;
&lt;th&gt;indexnum&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;a&lt;/th&gt;
&lt;td&gt;0.2097&lt;/td&gt;
&lt;td&gt;上证指数&lt;/td&gt;
&lt;td&gt;sh000001&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;b&lt;/th&gt;
&lt;td&gt;0.0989&lt;/td&gt;
&lt;td&gt;中证500&lt;/td&gt;
&lt;td&gt;sh000905&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;c&lt;/th&gt;
&lt;td&gt;0.0966&lt;/td&gt;
&lt;td&gt;沪深300&lt;/td&gt;
&lt;td&gt;sh000300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;d&lt;/th&gt;
&lt;td&gt;0.0884&lt;/td&gt;
&lt;td&gt;上证指数&lt;/td&gt;
&lt;td&gt;sh000001&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;e&lt;/th&gt;
&lt;td&gt;0.2174&lt;/td&gt;
&lt;td&gt;上证指数&lt;/td&gt;
&lt;td&gt;sh000001&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;f&lt;/th&gt;
&lt;td&gt;0.1906&lt;/td&gt;
&lt;td&gt;深证金融地产行业指数&lt;/td&gt;
&lt;td&gt;sz399619&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;g&lt;/th&gt;
&lt;td&gt;0.0984&lt;/td&gt;
&lt;td&gt;上证指数&lt;/td&gt;
&lt;td&gt;sh000001&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h1 id="获取各指数历史数据"&gt;获取各指数历史数据&lt;/h1&gt;
&lt;p&gt;利用 AkShare 获取各指数的历史数据。因为股票基金是以收盘价定价，所以只需要各指数的收盘价来合成基金组合的对应指数。&lt;/p&gt;</description></item><item><title>kit，一个办公文档管理工具</title><link>https://blog.kangq.wang/kityigebangong/</link><pubDate>Tue, 20 Oct 2020 11:08:43 +0000</pubDate><guid>https://blog.kangq.wang/kityigebangong/</guid><description>&lt;h1 id="项目背景"&gt;项目背景&lt;/h1&gt;
&lt;p&gt;kit，一个用于管理工作文档版本的工具。项目地址：https://github.com/tsingkk/kit。&lt;/p&gt;
&lt;p&gt;编写这个工具的目的有两个：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;自学练习 Python 编程；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;学以致用，试图解决自身工作中，文件和版本过多导致分不清文件版本的问题。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;勘察设计行业的工作成果为设计文件，以 Word 文档和 CAD 图纸这类二进制文件为主，有别于 IT 行业常用文本文件。git 并不适合用于管理二进制文件，但非常喜欢 git 对版本的管理流程，因此就参考 git 的一般操作流程，写了 kit。对，名字也是模仿的。对 git 的模仿也仅限于操作流程和名字，原因是作为非专业人员看不懂 git 的代码和算法。对版本的管理流程也根据自己工作需要做了简化。&lt;/p&gt;</description></item><item><title>练手 Matplotlib | 西咸地区总人口变化趋势</title><link>https://blog.kangq.wang/lianshoumatplotlibxixian/</link><pubDate>Thu, 31 Oct 2019 08:02:35 +0000</pubDate><guid>https://blog.kangq.wang/lianshoumatplotlibxixian/</guid><description>&lt;h1 id="起因"&gt;起因&lt;/h1&gt;
&lt;p&gt;之前分析过近年来西安市和陕西省的人口变化趋势，发现西安市人口不断在增长，陕西省人口数量基本持平。&lt;/p&gt;
&lt;p&gt;昨天无意中看到一个说法，&lt;strong&gt;西安市和咸阳市总人口数量近年来基本没变化&lt;/strong&gt;，于是想验证下是否如此，顺便练手 matplotlib 做图。&lt;/p&gt;
&lt;p&gt;采用常住人口数据，2018年之前数据来自《陕西区域统计年鉴2018》，2018年数据来自相应省市的《2018年国民经济和社会发展统计公报》。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h1 id="做图"&gt;做图&lt;/h1&gt;
&lt;p&gt;人口数据保存在 .csv 文件里，所以先读取。&lt;/p&gt;</description></item><item><title>解决 VS Code 中找不到 pep8</title><link>https://blog.kangq.wang/jiejuevscodezhong/</link><pubDate>Fri, 18 Oct 2019 11:04:35 +0000</pubDate><guid>https://blog.kangq.wang/jiejuevscodezhong/</guid><description>&lt;p&gt;之前在VS Code配制好了pep8，今天忽然发现自动纠错没有提示。在 &lt;code&gt;Python: 选择 linter 插件&lt;/code&gt;选项中，找不到pep8了。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Snipaste1.png" loading="lazy" src="https://blog.kangq.wang/images/Snipaste1.png"&gt;&lt;/p&gt;
&lt;p&gt;搜了下，在这篇文章找到解决办法：&lt;a href="https://github.com/Microsoft/vscode-python/issues/410"&gt;rename &lt;code&gt;pep8&lt;/code&gt; linter to &lt;code&gt;pycodestyle&lt;/code&gt;&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;就是说， &lt;strong&gt;vscode-python&lt;/strong&gt; 项目中，&lt;code&gt;pep8&lt;/code&gt; 改名字叫 &lt;code&gt;pycodestyle&lt;/code&gt;。于是在 &lt;code&gt;Python: 选择 linter 插件&lt;/code&gt;中选择 &lt;code&gt;pycodestyle&lt;/code&gt;，就OK。&lt;/p&gt;</description></item><item><title>利用 Python 批量获取县镇运输距离</title><link>https://blog.kangq.wang/liyongpythonpiliang/</link><pubDate>Sat, 28 Sep 2019 13:04:46 +0000</pubDate><guid>https://blog.kangq.wang/liyongpythonpiliang/</guid><description>&lt;h1 id="起因"&gt;起因&lt;/h1&gt;
&lt;p&gt;最近做规划项目，领导让查出某几个市的所有乡镇级行政区域，距离所在县级行政中心的交通运输距离。想着也不是啥难事儿，高德地图一搜就有。&lt;/p&gt;
&lt;p&gt;当我把各市行政区划统计完，发现一共有五百多个乡镇，意味着要在地图上搜索五百多次，立马脑仁疼。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;于是我把任务分工给了其他同事，几个人同时查，能快点。&lt;/p&gt;
&lt;p&gt;看看，思维就是这么僵化，没有立刻意识到重复劳动也许可以借助计算机来自动完成。&lt;/p&gt;
&lt;p&gt;边查数据边想，以后还会有此类任务，到时候没同事帮忙可咋办，虽然不费脑力，却消耗大量时间。忽然意识到，我会基本的 Python 啊，搜搜网上有没有自动查距离的教程。&lt;/p&gt;</description></item><item><title>练手 Matplotlib | 西安人口数量变化</title><link>https://blog.kangq.wang/lianshoumatplotlibxian/</link><pubDate>Tue, 30 Jul 2019 13:41:25 +0000</pubDate><guid>https://blog.kangq.wang/lianshoumatplotlibxian/</guid><description>&lt;h1 id="matplotlib练手1"&gt;Matplotlib练手1&lt;/h1&gt;
&lt;p&gt;用Matplotlib做图，可视化近几年西安常住人口数量变化。&lt;/p&gt;
&lt;h1 id="数据来源"&gt;数据来源&lt;/h1&gt;
&lt;p&gt;所用数据来自《陕西区域统计年检 2018》（2000 年~2017年数据）、2018 年陕西省国民经济和社会发展统计公报（2018年数据）、2018 年西安市国民经济和社会发展统计公报（2018年数据）。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h1 id="绘图"&gt;绘图&lt;/h1&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-0-1"&gt;&lt;a class="lnlinks" href="#hl-0-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-2"&gt;&lt;a class="lnlinks" href="#hl-0-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-3"&gt;&lt;a class="lnlinks" href="#hl-0-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-4"&gt;&lt;a class="lnlinks" href="#hl-0-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-5"&gt;&lt;a class="lnlinks" href="#hl-0-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-6"&gt;&lt;a class="lnlinks" href="#hl-0-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-7"&gt;&lt;a class="lnlinks" href="#hl-0-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-8"&gt;&lt;a class="lnlinks" href="#hl-0-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-9"&gt;&lt;a class="lnlinks" href="#hl-0-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-10"&gt;&lt;a class="lnlinks" href="#hl-0-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-11"&gt;&lt;a class="lnlinks" href="#hl-0-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-12"&gt;&lt;a class="lnlinks" href="#hl-0-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-13"&gt;&lt;a class="lnlinks" href="#hl-0-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-14"&gt;&lt;a class="lnlinks" href="#hl-0-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-15"&gt;&lt;a class="lnlinks" href="#hl-0-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-16"&gt;&lt;a class="lnlinks" href="#hl-0-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-17"&gt;&lt;a class="lnlinks" href="#hl-0-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-18"&gt;&lt;a class="lnlinks" href="#hl-0-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-19"&gt;&lt;a class="lnlinks" href="#hl-0-19"&gt;19&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="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 class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;plt&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;pylab&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;mpl&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 class="n"&gt;mpl&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rcParams&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;font.sans-serif&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&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;simhei&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&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;mpl&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rcParams&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="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt; &lt;span class="c1"&gt;# 解决保存图像是负号&amp;#39;-&amp;#39;显示为方块的问题&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;mpl&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rcParams&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;figure.figsize&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;8.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;6.0&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2005&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2006&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2007&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2008&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2009&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2010&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2011&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2012&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2013&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2015&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2016&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2017&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2018&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;people_xian&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;688.01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;806.81&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;822.52&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;830.54&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;837.52&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;843.46&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;847.41&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;851.34&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;855.29&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;858.81&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;862.75&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="mf"&gt;870.56&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;883.21&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;961.67&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;1000.37&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;people_shanxi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3644&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3690&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3699&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3708&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3718&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3727&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3735&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3743&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3753&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3764&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3775&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3793&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3813&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3835&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;3864.40&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;p1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;people_xian&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;p2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;people_shanxi&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;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xlabel&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ylabel&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xticks&lt;/span&gt;&lt;span class="p"&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;2000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2019&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 class="n"&gt;rotation&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;60&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;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;legend&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;p1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;p2&lt;/span&gt;&lt;span class="p"&gt;],&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="s2"&gt;&amp;#34;陕西省&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;loc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&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;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&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="pyechartlian-shou-xi-an-ren-kou-shu-liang-bian-hua_3_0.png" loading="lazy" src="https://bode-1257862934.file.myqcloud.com/img/52281a2f628d9a70e50b2ceb56580d2b.pyechartlian-shou-xi-an-ren-kou-shu-liang-bian-hua_3_0.png"&gt;&lt;/p&gt;</description></item><item><title>用 python 转换博客文章，从 Farbox 到 Nikola</title><link>https://blog.kangq.wang/yongpythonzhuanhuanbo/</link><pubDate>Sun, 21 Oct 2018 10:13:56 +0000</pubDate><guid>https://blog.kangq.wang/yongpythonzhuanhuanbo/</guid><description>&lt;h1 id="起因"&gt;起因&lt;/h1&gt;
&lt;p&gt;大概是年初，发现一款 Python 驱动的静态博客生成工具 Nikola。因为一直想学 Python，而且 Nikola 能够直接支持 Jupyter 格式的博文，不像其他博客系统需要额外插件和配置，所以就开始用 Nikola 写博客，同时可以倒逼自己学习 Python。恩，虽然那时 Python 也没咋学，更别提做数据分析，逼格反正先装到位了。&lt;/p&gt;
&lt;p&gt;之前几年一直用 Farbox 博客，而后用 Typecho 做了几个月博客。改用 Nikola 后，虽然依然支持 Markdown 写的文章，但要求的文章的 front-matter 格式不同于 Farbox，也无法显示直接在 Typecho 中插入的图片。因此需要把用 Nikola 之前的所有博客文章做适当修改，转换为 Nikola 要求的格式。&lt;/p&gt;</description></item><item><title>配置 atom 的 python 环境</title><link>https://blog.kangq.wang/peizhiatomdepython/</link><pubDate>Thu, 07 Jun 2018 13:05:53 +0000</pubDate><guid>https://blog.kangq.wang/peizhiatomdepython/</guid><description>&lt;h1 id="安装atom"&gt;安装Atom&lt;/h1&gt;
&lt;p&gt;官方网站直接下载安装包：https://atom.io/。&lt;/p&gt;
&lt;p&gt;#配置Atom的安装源&lt;/p&gt;
&lt;p&gt;由于Atom自带扩展安装源可能国内连接不上，做如下配置：&lt;/p&gt;
&lt;p&gt;~/.atom文件夹下新建.apmrc 的文本文件，添加淘宝源：&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-0-1"&gt;&lt;a class="lnlinks" href="#hl-0-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-2"&gt;&lt;a class="lnlinks" href="#hl-0-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-3"&gt;&lt;a class="lnlinks" href="#hl-0-3"&gt;3&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-4"&gt;&lt;a class="lnlinks" href="#hl-0-4"&gt;4&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;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;registry=https://registry.npm.taobao.org/
&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;strict-ssl=false
&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;若电脑商安装有npm，则再运行如下命令：&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;/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;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm config set registry https://registry.npm.taobao.org
&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-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;/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;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apm install --check
&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;blockquote&gt;
&lt;p&gt;Checking for native build tools done&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;则问题解决，可放心安装扩展了。&lt;/p&gt;
&lt;h1 id="安装支持python的相关扩展"&gt;安装支持Python的相关扩展&lt;/h1&gt;
&lt;p&gt;可以从Atom的扩展管理器搜索安装，不过直接用apm install xxx（扩展名）命令比较快。&lt;/p&gt;</description></item><item><title>64位windows7下安装ipython</title><link>https://blog.kangq.wang/64weiwindows7xiaan/</link><pubDate>Fri, 09 May 2014 00:00:00 +0000</pubDate><guid>https://blog.kangq.wang/64weiwindows7xiaan/</guid><description>&lt;p&gt;&lt;strong&gt;系统：&lt;/strong&gt; Windows 7，64位&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;步骤：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;安装python环境。有很多打包好的版本可以选择。这里下载的是&lt;a href="http://continuum.io/downloads"&gt;Anaconda&lt;/a&gt;，包括了python以及常用的科学计算python库，并将所有python文件放在一个文件夹中。下载完后点击安装。&lt;/li&gt;
&lt;/ol&gt;
&lt;!-- more --&gt;
&lt;ol start="2"&gt;
&lt;li&gt;
&lt;p&gt;安装&lt;a href="https://pypi.python.org/pypi/setuptools"&gt;setuptools&lt;/a&gt;。点击进入下载页面，下载Windows版的。用python运行安装。安装好后还不能用，存在错误，据说是python2.7的bug。使用时出现的错误如下：
命令行中运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;easy_install pyreadline
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后一行显示&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;UnicodeDecodeError: 'ascii' codec can't decode byte
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;解决办法：参考&lt;a href="http://www.aax9.com/2014/01/21/95.html"&gt;《Python 2.7安装setuptools时的UnicodeDecodeError解决办法》&lt;/a&gt;，将作者修改好的mimetypes.py文件替换电脑中～/Anaconda/lib下同名文件，并删除该文件夹下mimetypes.pyc文件。&lt;/p&gt;</description></item><item><title>学习Python(1)</title><link>https://blog.kangq.wang/xuexipython1/</link><pubDate>Wed, 01 Jan 2014 00:00:00 +0000</pubDate><guid>https://blog.kangq.wang/xuexipython1/</guid><description>&lt;p&gt;半年前就打算学习python，目的是科学计算。虽然纯属兴趣，但也花了一下午查找有关的python的资料。从起源，到发展历史，再到现今使用状况，还对比了下python和时下很火的ruby，发现两者有着截然相反的设计哲学。网络上大侠们说ruby是一种魔法语言，一个问题可以有多种方法去解决，而python简洁严格，解决问题的方法往往明了单一。虽然没接触过ruby，但本着大道至简的想法，以及丰富的有关科学计算及绘图的函数包，投向python的怀抱。而且由于本身系统内就集成了python包，在linux下使用python感觉就像在食堂吃饭，虽无浪漫新意，但却天经地义。&lt;/p&gt;</description></item></channel></rss>