日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

Python繪制散點(diǎn)圖之可視化神器pyecharts_python

作者:王小王_123??????? ? 更新時(shí)間: 2022-08-29 編程語言

散點(diǎn)圖

什么是散點(diǎn)圖?

散點(diǎn)圖是指在數(shù)理統(tǒng)計(jì)回歸分析中,數(shù)據(jù)點(diǎn)在直角坐標(biāo)系平面上的分布圖,?散點(diǎn)圖??表示因變量隨自變量而變化的大致趨勢,由此趨勢可以選擇合適的函數(shù)進(jìn)行經(jīng)驗(yàn)分布的擬合,進(jìn)而找到變量之間的函數(shù)關(guān)系。

散點(diǎn)圖有什么用處?

  • 1、數(shù)據(jù)用圖表來展示,顯然比較直觀,在工作匯報(bào)等場合能起到事半功倍的效果,讓聽者更容易接受,理解你所處理的數(shù)據(jù)。
  • 2、散點(diǎn)圖更偏向于研究型圖表,能讓我們發(fā)現(xiàn)變量之間隱藏的關(guān)系為我們決策作出重要的引導(dǎo)作用。
  • 3、散點(diǎn)圖核心的價(jià)值在于發(fā)現(xiàn)變量之間的關(guān)系,千萬不要簡單地將這個(gè)關(guān)系理解為線性回歸關(guān)系。變量間的關(guān)系有很多,如線性關(guān)系、指數(shù)關(guān)系、對數(shù)關(guān)系等等,當(dāng)然,沒有關(guān)系也是一種重要的關(guān)系。
  • 4、散點(diǎn)圖經(jīng)過回歸分析之后,可以對相關(guān)對象進(jìn)行預(yù)測分析,進(jìn)而做出科學(xué)的決策,而不是模棱兩可。比如說:醫(yī)學(xué)里的白細(xì)胞散點(diǎn)圖可以在醫(yī)學(xué)檢測方面為我們健康提供精確的分析,為醫(yī)生后續(xù)的判斷做出重要的技術(shù)支持。

散點(diǎn)圖的基本構(gòu)成要素

散點(diǎn)圖主要的構(gòu)成元素有:數(shù)據(jù)源,橫縱坐標(biāo)軸,變量名,研究的對象。而基本的要素就是點(diǎn),也就是我們統(tǒng)計(jì)的數(shù)據(jù),由這些點(diǎn)的分布我們才能觀察出變量之間的關(guān)系。

而散點(diǎn)圖一般研究的是兩個(gè)變量之間的關(guān)系,往往滿足不了我們?nèi)粘5男枨蟆R虼耍瑲馀輬D的誕生就是為散點(diǎn)圖增加變量,提供更加豐富的信息,點(diǎn)的大小或者顏色可以定義為第三個(gè)變量,因?yàn)椋龀鰜淼纳Ⅻc(diǎn)圖類似氣泡,也由此得名為氣泡圖。

散點(diǎn)圖模板系列

簡單散點(diǎn)圖

數(shù)據(jù)越多散點(diǎn)圖呈現(xiàn)的效果就越明顯。這也就是我們平時(shí)在進(jìn)行建模的時(shí)候,采用回歸擬合的原則,如果數(shù)據(jù)是遵循某種函數(shù)關(guān)系,我們可以通過機(jī)器進(jìn)行訓(xùn)練,不斷的迭代達(dá)到最優(yōu)效果。

import pyecharts.options as opts
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]

(
Scatter(init_opts=opts.InitOpts(width="1200px", height="600px"))
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
series_name="",
y_axis=y_data,
symbol_size=20,
label_opts=opts.LabelOpts(is_show=False),
)
.set_series_opts()
.set_global_opts(
xaxis_opts=opts.AxisOpts(
type_="value", splitline_opts=opts.SplitLineOpts(is_show=True)
),
yaxis_opts=opts.AxisOpts(
type_="value",
axistick_opts=opts.AxisTickOpts(is_show=True),
splitline_opts=opts.SplitLineOpts(is_show=True),
),
tooltip_opts=opts.TooltipOpts(is_show=False),
)
.render("簡單散點(diǎn)圖.html")
)

多維數(shù)據(jù)散點(diǎn)圖

我們在平時(shí)的運(yùn)用場景中,發(fā)現(xiàn)散點(diǎn)圖太多呈現(xiàn)的效果圖太密集了,我們只需要知道某一個(gè)區(qū)域它分布的數(shù)量,本來柱狀圖可以解決,但是這個(gè)散點(diǎn)圖一個(gè)更好,可以反映區(qū)域的分布,主要可以看見它的數(shù)量趨勢變化,根據(jù)自己的業(yè)務(wù)需求來使用吧。

from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.commons.utils import JsCode
from pyecharts.faker import Faker

c = (
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis(
"類別1",
[list(z) for z in zip(Faker.values(), Faker.choose())],
label_opts=opts.LabelOpts(
formatter=JsCode(
"function(params){return params.value[1] +' : '+ params.value[2];}"
)
),
)
.set_global_opts(
title_opts=opts.TitleOpts(title="多維度數(shù)據(jù)"),
tooltip_opts=opts.TooltipOpts(
formatter=JsCode(
"function (params) {return params.name + ' : ' + params.value[2];}"
)
),
visualmap_opts=opts.VisualMapOpts(
type_="color", max_=150, min_=20, dimension=1
),
)
.render("多維數(shù)據(jù)散點(diǎn)圖.html")
)
print([list(z) for z in zip(Faker.values(), Faker.choose())])

散點(diǎn)圖顯示分割線

顯示分割線,其實(shí)和之前的沒有異樣。

from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.faker import Faker
c = (
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis("A", Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title="標(biāo)題"),
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
)
.render("分割線.html")
)

散點(diǎn)圖凸出大小(二維)

用二維的數(shù)據(jù)來展示每個(gè)類別的分布狀況,圖表可顯示多個(gè)類別,這樣極大的增強(qiáng)了我們解釋的效果。

from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.faker import Faker
c = (
Scatter()
.add_xaxis(Faker.choose())
.add_yaxis("1", Faker.values())
.add_yaxis("2", Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title="標(biāo)題"),
visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),
)
.render("凸出大小散點(diǎn)圖.html")
)

?3D散點(diǎn)圖展示

動態(tài)漣漪散點(diǎn)圖

之前的散點(diǎn)都是靜態(tài)的,下面我們來看看動態(tài)的散點(diǎn)圖;

from pyecharts import options as opts
from pyecharts.charts import EffectScatter
from pyecharts.faker import Faker
c = (
EffectScatter()
.add_xaxis(Faker.choose())
.add_yaxis("", Faker.values())
.set_global_opts(title_opts=opts.TitleOpts(title="散點(diǎn)圖"))
.render("動態(tài)散點(diǎn)圖.html")
)

箭頭標(biāo)志散點(diǎn)圖

from pyecharts import options as opts
from pyecharts.charts import EffectScatter
from pyecharts.faker import Faker
from pyecharts.globals import SymbolType

c = (
EffectScatter()
.add_xaxis(Faker.choose())
.add_yaxis("", Faker.values(), symbol=SymbolType.ARROW)
.set_global_opts(title_opts=opts.TitleOpts(title="標(biāo)題"))
.render("箭頭動態(tài)散點(diǎn)圖.html")
)

原文鏈接:https://blog.51cto.com/u_15172991/5428167

欄目分類
最近更新