首頁 > 軟體

Python+Pyecharts實現散點圖的繪製

2022-06-20 18:00:11

第1關:Scatter:散點圖(一)

程式設計要求

根據以上介紹,在右側編輯器補充程式碼,繪製給定資料的散點圖,要求:

  • 畫布大小初始化為寬 1600 畫素,高 1000 畫素
  • X 軸資料設定為 x_data
  • 新增 Y 軸資料。系列名稱設定為空,資料使用 y_data,標記的大小設定為20,不顯示標籤
  • X 軸型別設定為數值軸,並顯示分割線
  • Y 軸型別設定為數值軸,並顯示分割線以及座標軸刻度
  • 不顯示提示框

程式碼

from PreTest import *
from pyecharts import options as opts
from pyecharts.render import make_snapshot
from snapshot_phantomjs import snapshot
 
from pyecharts.charts import Scatter
 
 
data = [
    [10.0, 8.04],
    [8.0, 6.95],
    [13.0, 7.58],
    [9.0, 8.81],
    [11.0, 8.33],
    [14.0, 9.96],
    [6.0, 7.24],
    [4.0, 4.26],
    [12.0, 10.84],
    [7.0, 4.82],
    [5.0, 5.68],
]
data.sort(key=lambda x: x[0])
x_data = [d[0] for d in data]
y_data = [d[1] for d in data]
 
 
def scatter_chart() -> Scatter:
    # ********* Begin *********#  
    scatter = (
        Scatter(init_opts=opts.InitOpts(width="1600px", height="1000px"))
        .add_xaxis(x_data)
        .add_yaxis("",
            y_data,
            symbol_size=20
            )
        .set_series_opts(
            label_opts=opts.LabelOpts(is_show=False)
            )
        .set_global_opts(
            tooltip_opts=opts.TooltipOpts(is_show=False),
            xaxis_opts=opts.AxisOpts(
                type_="value",
                splitline_opts=opts.SplitLineOpts(is_show=True)
            ),
            yaxis_opts=opts.AxisOpts(
                type_="value",
                splitline_opts=opts.SplitLineOpts(is_show=True),
                axistick_opts=opts.AxisTickOpts(is_show=True)
            )
        )
    )
    # ********** End **********#
    return scatter
 
make_snapshot(snapshot, scatter_chart().render("Result/render.html"), 'StudentAnswer/student_answer.png') # 輸出圖片
make_snapshot(snapshot, scatter_base(x_data, y_data).render(), "StandardAnswer/task1/standard_answer_1.png")

測試說明

平臺會執行你編寫的程式碼進行繪圖,並與預期圖片進行比對。預期效果如下:

第2關:Scatter:散點圖(二)

程式設計要求

根據以上介紹,在右側編輯器補充程式碼,利用給定資料繪製相應的散點圖,要求:

  • X 軸資料項使用data_x
  • 新增兩組 Y 軸資料。
  • 第一組系列名稱設定為“商家A”,資料使用data_y_1
  • 第二組系列名稱設定為“商家B”,資料使用data_y_2
  • 將標題設定為“Scatter-VisualMap(Size)”
  • 視覺對映過渡型別選擇“size”,最大值設為 150,最小值設定為 20

程式碼

from PreTest import *
from pyecharts import options as opts
from pyecharts.render import make_snapshot
from snapshot_phantomjs import snapshot
 
from pyecharts.charts import Scatter
 
from pyecharts.faker import Faker
 
 
data_x = Faker.choose()
 
data_y_1 = Faker.values()
 
data_y_2 = Faker.values()
 
 
def scatter_chart() -> Scatter:
    # ********* Begin *********#  
    scatter = (
        Scatter()
        .add_xaxis(data_x)
        .add_yaxis("商家A",data_y_1)
        .add_yaxis("商家B",data_y_2)
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Scatter-VisualMap(Size)"),
            visualmap_opts=opts.VisualMapOpts(is_show=True,type_='size',min_=20,max_=150)
        )
    )
 
    # ********** End **********#
    return scatter
 
make_snapshot(snapshot, scatter_chart().render("Result/render.html"), "StudentAnswer/student_answer.png") # 輸出圖片
make_snapshot(snapshot, scatter_visual(data_x, data_y_1, data_y_2).render(), "StandardAnswer/task2/standard_answer_2.png")

測試說明

平臺會執行你編寫的程式碼進行繪圖,並與預期圖片進行比對。預期效果如下:

第3關:Scatter:散點圖(三)

程式設計要求

根據以上介紹,在右側編輯器補充程式碼,利用給定資料繪製相應的散點圖,要求:

  • X 軸資料項使用data_x
  • Y 軸資料項使用data_y,系列名稱設定為“商家A”,並用 JsCode 格式化標籤(具體格式見文末)
  • 標題設定為“Scatter-多維度資料”
  • 用 JsCode 格式化提示框文字(詳見文末)
  • 視覺對映型別設定為顏色,最大值設定為 150,最小值設定為 20,元件對映維度為 1

程式碼

from PreTest import *
from pyecharts import options as opts
from pyecharts.render import make_snapshot
from snapshot_phantomjs import snapshot
 
from pyecharts.charts import Scatter
from pyecharts.faker import Faker
from pyecharts.commons.utils import JsCode
 
data_x = Faker.choose()
 
data_y = [list(z) for z in zip(Faker.values(), Faker.choose())]
 
 
def scatter_chart() -> Scatter:
    # ********* Begin *********#  
    scatter = (
        Scatter()
        .add_xaxis(data_x)
        .add_yaxis(
            "商家A",
            data_y,
            label_opts=opts.LabelOpts(
                formatter=JsCode("""function(params){return params.value[1] +' : '+ params.value[2];}""")
            )
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Scatter-多維度資料"),
            visualmap_opts=opts.VisualMapOpts(is_show=True,type_='color',min_=20,max_=150,dimension=1),
            tooltip_opts=opts.TooltipOpts(
                formatter=JsCode("""function (params) {return params.name + ' : ' + params.value[2];}""")
            )
        )
 
    )
 
    # ********** End **********#
    return scatter
 
make_snapshot(snapshot, scatter_chart().render("Result/render.html"), 'StudentAnswer/student_answer.png') # 輸出圖片
make_snapshot(snapshot, scatter_multi(data_x, data_y).render(), "StandardAnswer/task3/standard_answer_3.png")

測試說明

平臺會執行你編寫的程式碼進行繪圖,並與預期圖片進行比對。預期效果如下:

以上就是Python+Pyecharts實現散點圖的繪製的詳細內容,更多關於Python Pyecharts散點圖的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com