推荐一个 Python 手绘图形库

论坛 期权论坛     
选择匿名的用户   2021-6-2 15:41   178   0
<div id="js_content">
<blockquote>
  <p><strong>https://github.com/chenjiandongx/cutecharts</strong></p>
</blockquote>
<p>今天,给大家介绍一个很酷的 <strong>Python 手绘风格可视化神包:cutecharts</strong><strong>。</strong></p>
<p>和 Matplotlib 、pyecharts 等常见的图表不同,使用这个包可以生成下面这种看起来像手绘的各种图表,在一些场景下使用效果可能会更好。<img src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-b29b9d40946b3d251b0ab08734aee809" title=""></p>
<p>GitHub 地址:</p>
<p>https://github.com/chenjiandongx/cutecharts</p>
<p>怎么画出这些图表呢,很简单,一行命令先安装好该库:</p>
<pre class="blockcode"><code class="language-go">pip install cutecharts
</code></pre>
<p>也可以使用源码安装的方式:</p>
<pre class="blockcode"><code class="language-go">$ git clone https://github.com/chenjiandongx/cutecharts.git
$ cd cutecharts
$ pip install -r requirements.txt
$ python setup.py install
</code></pre>
<p>下面就介绍下每个图表如何绘制。</p>
<p>首先是一些图表共通的参数:</p>
<h3>Commons</h3>
<p>不同图表有着部分相同的方法。</p>
<p><strong><code>__init__</code></strong></p>
<pre class="blockcode"><code class="language-go">Params                                          Desc
------                                          ----
title: Optional[str] &#61; None                     图表标题
width: str &#61; &#34;800px&#34;                            图表宽度
height: str &#61; &#34;600px&#34;                           图表高度
assets_host: Optional[str] &#61; None               引用资源 Host
</code></pre>
<p><strong><code>render</code></strong></p>
<pre class="blockcode"><code class="language-go">Params                                          Desc
------                                          ----
dest: str &#61; &#34;render.html&#34;                       渲染的文件路径
template_name: str &#61; &#34;basic_local.html&#34;         渲染使用的模板,一般不需要修改   
</code></pre>
<p><strong><code>render_notebook</code></strong></p>
<pre class="blockcode"><code class="language-go">Params                                          Desc
------                                          ----
template_type: str &#61; &#34;basic&#34;                    渲染使用的模板类型,一般不需要修改
</code></pre>
<p><strong><code>load_javascript</code></strong></p>
<pre class="blockcode"><code class="language-go">加载 JS 依赖,在 JupyterLab 渲染时使用。
</code></pre>
<h2>Bar(柱状图)</h2>
<blockquote>
  <p>cutecharts.charts.Bar</p>
</blockquote>
<h3>API</h3>
<blockquote>
  <p>cutecharts.charts.Bar.set_options</p>
</blockquote>
<pre class="blockcode"><code class="language-go">Params                                          Desc
------                                          ----
labels: Iterable                                X 坐标轴标签数据
x_label: str &#61; &#34;&#34;                               X 坐标轴名称
y_label: str &#61; &#34;&#34;                               Y 坐标轴名称
y_tick_count: int &#61; 3                           Y 轴刻度分割段数
colors: Optional[Iterable] &#61; None               label 颜色数组
font_family: Optional[str] &#61; None               CSS font-family
</code></pre>
<blockquote>
  <p>cutecharts.charts.Bar.add_series</p>
</blockquote>
<pre class="blockcode"><code class="language-go">Params                                          Desc
------                                          ----
name: str                                       series 名称
data: Iterable                                  series 数据列表
</code></pre>
<h3>Demo</h3>
<blockquote>
  <p>Bar-基本示例</p>
</blockquote>
<pre class="blockcode"><code class="language-go">from cutecharts.charts import Bar
from cutecharts.components import Page
from cutecharts.faker import Faker


def bar_base() -&gt; Bar:
    chart &#61; Bar(&#34;Bar-基本示例&#34;)
    chart.set_options(labels&#61;Faker.choose(), x_label&#61;&#34;I&#39;m xlabel&#34;, y_label&#61;&#34;I&#39;m ylabel&#34;)
    chart.add_series(&#34;series-A&#34;, Faker.values())
    return chart

bar_base().render()</code></pre>
<p><img src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-da495e2f40decbc35eb0c2ba00c8143f" title="img"></p>
<blockquote>
  <p>Bar-调整颜色</p>
</blockquote>
<pre class="blockcode"><code class="language-go">def bar_tickcount_colors():
    chart &#61; Bar(&#34;Bar-调整颜色&#34;)
    chart.set_options(labels&#61;Faker.choose(), y_tick_count&#61;10, colors&#61;Faker.colors)
    chart.add_series(&#34;series-A&#34;, Faker.values())
    return chart</code></pre>
<p><img src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-eea005d9c4ab561567599398bb93ad08" title="img"></p>
<h2>Line(折线图)</h2>
<blockquote>
  <p>cutecharts.charts.Line</p>
</blockquote>
<h3>API</h3>
<blockquote>
  <p>cutecharts.charts.Line.set_options</p>
</blockquote>
<pre class="blockcode"><code class="language-go">Params                                          Desc
------                                          ----
labels: Iterable                                X 坐标轴标签数据
x_label: str &#61; &#34;&#34;                  
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

下载期权论坛手机APP