Pyecharts之折線圖(Line)


Pyecharts之折線圖(Line)

from snapshot_selenium import snapshot as driver

from pyecharts import options as opts
from pyecharts.charts import Line
from pyecharts.render import make_snapshot
from pyecharts.globals import CurrentConfig,NotebookType

CurrentConfig.NOTEBOOK_TYPE=NotebookType.JUPYTER_LAB

一.基本概念

def add_yaxis(
# 系列名稱,用於 tooltip 的顯示,legend 的圖例篩選。
series_name: str,

# 系列數據
y_axis: Sequence,

# 是否選中圖例
is_selected: bool = True,

# 是否連接空數據,空數據使用 `None` 填充
is_connect_nones: bool = False,

# 使用的 x 軸的 index,在單個圖表實例中存在多個 x 軸的時候有用。
xaxis_index: Optional[Numeric] = None,

# 使用的 y 軸的 index,在單個圖表實例中存在多個 y 軸的時候有用。
yaxis_index: Optional[Numeric] = None,

# 系列 label 顏色
color: Optional[str] = None,

# 是否顯示 symbol, 如果 false 則只有在 tooltip hover 的時候顯示。
is_symbol_show: bool = True,

# 標記的圖形。
# ECharts 提供的標記類型包括 'circle', 'rect', 'roundRect', 'triangle', 
# 'diamond', 'pin', 'arrow', 'none'
# 可以通過 'image://url' 設置為圖片,其中 URL 為圖片的鏈接,或者 dataURI。
symbol: Optional[str] = None,

# 標記的大小,可以設置成諸如 10 這樣單一的數字,也可以用數組分開表示寬和高,
# 例如 [20, 10] 表示標記寬為 20,高為 10。
symbol_size: Union[Numeric, Sequence] = 4,

# 數據堆疊,同個類目軸上系列配置相同的 stack 值可以堆疊放置。
stack: Optional[str] = None,

# 是否平滑曲線
is_smooth: bool = False,

# 是否顯示成階梯圖
is_step: bool = False,

# 是否開啟 hover 在拐點標志上的提示動畫效果。
is_hover_animation: bool = True,

# 折線圖所有圖形的 zlevel 值。
# zlevel用於 Canvas 分層,不同zlevel值的圖形會放置在不同的 Canvas 中,Canvas 分層是一種常見的優化手段。
# zlevel 大的 Canvas 會放在 zlevel 小的 Canvas 的上面。
z_level: types.Numeric = 0,

# 折線圖組件的所有圖形的z值。控制圖形的前后順序。z值小的圖形會被z值大的圖形覆蓋。
# z 相比 zlevel 優先級更低,而且不會創建新的 Canvas。
z: types.Numeric = 0,

# 標記點配置項,參考 `series_options.MarkPointOpts`
markpoint_opts: Union[opts.MarkPointOpts, dict, None] = None,

# 標記線配置項,參考 `series_options.MarkLineOpts`
markline_opts: Union[opts.MarkLineOpts, dict, None] = None,

# 提示框組件配置項,參考 `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,

# 標簽配置項,參考 `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),

# 線樣式配置項,參考 `series_options.LineStyleOpts`
linestyle_opts: Union[opts.LineStyleOpts, dict] = opts.LineStyleOpts(),

# 填充區域配置項,參考 `series_options.AreaStyleOpts`
areastyle_opts: Union[opts.AreaStyleOpts, dict] = opts.AreaStyleOpts(),

# 圖元樣式配置項,參考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,

)

二.代碼示例

import pyecharts.options as opts
from pyecharts.charts import Line
from pyecharts.faker import Faker

l = (
    Line()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A", Faker.values())
    .add_yaxis("商家B", Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title="Line-基本示例"))
    #.render("line_base.html")
)

#make_snapshot(driver,l.render("gauge.html"),"w.png")
l.load_javascript()
l.render_notebook()
from pyecharts.charts import Bar

c = (
        Bar()
        .add_xaxis(Faker.days_attrs)
        .add_yaxis("商家A", Faker.days_values)
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Bar-DataZoom(slider-水平)"),
            datazoom_opts=[opts.DataZoomOpts()],
        )
    )

c.load_javascript()
c.render_notebook()

三.表格

from pyecharts.components import Table
from pyecharts.options import ComponentTitleOpts


table = Table()

headers = ["City name", "Area", "Population", "Annual Rainfall"]
rows = [
    ["Brisbane", 5905, 1857594, 1146.4],
    ["Adelaide", 1295, 1158259, 600.5],
    ["Darwin", 112, 120900, 1714.7],
    ["Hobart", 1357, 205556, 619.5],
    ["Sydney", 2058, 4336374, 1214.8],
    ["Melbourne", 1566, 3806092, 646.9],
    ["Perth", 5386, 1554769, 869.4],
]
table.add(headers, rows)
table.set_global_opts(
    title_opts=ComponentTitleOpts(title="Table-基本示例", subtitle="我是副標題支持換行哦")
)
#table.render("table_base.html")
<pyecharts.components.table.Table at 0x1f35f360408>
table.load_javascript()
table.render_notebook()
        <style>
        .fl-table {
            margin: 20px;
            border-radius: 5px;
            font-size: 12px;
            border: none;
            border-collapse: collapse;
            max-width: 100%;
            white-space: nowrap;
            word-break: keep-all;
        }

        .fl-table th {
            text-align: left;
            font-size: 20px;
        }

        .fl-table tr {
            display: table-row;
            vertical-align: inherit;
            border-color: inherit;
        }

        .fl-table tr:hover td {
            background: #00d1b2;
            color: #F8F8F8;
        }

        .fl-table td, .fl-table th {
            border-style: none;
            border-top: 1px solid #dbdbdb;
            border-left: 1px solid #dbdbdb;
            border-bottom: 3px solid #dbdbdb;
            border-right: 1px solid #dbdbdb;
            padding: .5em .55em;
            font-size: 15px;
        }

        .fl-table td {
            border-style: none;
            font-size: 15px;
            vertical-align: center;
            border-bottom: 1px solid #dbdbdb;
            border-left: 1px solid #dbdbdb;
            border-right: 1px solid #dbdbdb;
            height: 30px;
        }

        .fl-table tr:nth-child(even) {
            background: #F8F8F8;
        }
    </style>
    <div id="7a8fe745ebbf46bc856b1a3dcd228372" class="chart-container" style="">
        <p class="title" style="font-size: 18px; font-weight:bold;" > Table-基本示例</p>
        <p class="subtitle" style="font-size: 12px;" > 我是副標題支持換行哦</p>
        <table class="fl-table">
<tr>
    <th>City name</th>
    <th>Area</th>
    <th>Population</th>
    <th>Annual Rainfall</th>
</tr>
<tr>
    <td>Brisbane</td>
    <td>5905</td>
    <td>1857594</td>
    <td>1146.4</td>
</tr>
<tr>
    <td>Adelaide</td>
    <td>1295</td>
    <td>1158259</td>
    <td>600.5</td>
</tr>
<tr>
    <td>Darwin</td>
    <td>112</td>
    <td>120900</td>
    <td>1714.7</td>
</tr>
<tr>
    <td>Hobart</td>
    <td>1357</td>
    <td>205556</td>
    <td>619.5</td>
</tr>
<tr>
    <td>Sydney</td>
    <td>2058</td>
    <td>4336374</td>
    <td>1214.8</td>
</tr>
<tr>
    <td>Melbourne</td>
    <td>1566</td>
    <td>3806092</td>
    <td>646.9</td>
</tr>
<tr>
    <td>Perth</td>
    <td>5386</td>
    <td>1554769</td>
    <td>869.4</td>
</tr>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM