python 散点图_【致敬科比】Python散点图展示科比·布莱恩特职业生涯全部进球位置(pyecharts)...

898e4fdca8a0414bc67fa9dbcc3a624e.png

大家好!

今天来分享一下如何用Python工具来帮助我们制作一张散点图展示科比·布莱恩特职业生涯全部进球位置,如下图所示。

5e7e45ecd11c6cdba1fdff3e6135f7cb.png

案例中数据表格结构如下:

e2fd6177a0d247594665df57538b6724.png

代码及演示:

import numpy as np
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import ThemeType

df_Kobe = pd.read_csv("D:01会Excel的隔壁老王Excel报表20200516-科比职业生涯数据Kobe-data.csv")

df_Kobe

0808da37308f4888898bfddd53bf767c.png
#选择"shot_made_flag"不为空的所有数据

df_Kobe_notnull = df_Kobe[ pd.notnull(df_Kobe["shot_made_flag"]) ]
df_Kobe_notnull

4a7196075c042abd9dfe046c7c567adf.png
#分别选择投进、投丢的数据

df_Kobe_notnull_shot_made_flag_1 = df_Kobe_notnull[ df_Kobe_notnull.shot_made_flag == 1]
df_Kobe_notnull_shot_made_flag_0 = df_Kobe_notnull[ df_Kobe_notnull.shot_made_flag == 0]
df_Kobe_notnull_shot_made_flag_1[["loc_x","loc_y","shot_made_flag"]].values.tolist()

3cc660238586f50bdb1db526bf0fcf9a.png
c=(
    Scatter(init_opts=opts.InitOpts(width="700px", height="1300px",bg_color="#ffffff"))

    .add_xaxis(xaxis_data=df_Kobe_notnull_shot_made_flag_0["loc_x"].values.tolist())
    .add_yaxis(
        series_name="投偏",
        y_axis=df_Kobe_notnull_shot_made_flag_0["loc_y"].values.tolist(),
        symbol_size=3,
        label_opts=opts.LabelOpts(is_show=0),
        color="#542481",
    )

    .add_xaxis(xaxis_data=df_Kobe_notnull_shot_made_flag_1["loc_x"].values.tolist())
    .add_yaxis(
        series_name="投进",
        y_axis=df_Kobe_notnull_shot_made_flag_1["loc_y"].values.tolist(),
        symbol_size=2,
        label_opts=opts.LabelOpts(is_show=0),
        color="#FEDC56"
        #color="#66ff99",
    )

    .set_series_opts()
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(
            type_="value", splitline_opts=opts.SplitLineOpts(is_show=0)
        ),
        yaxis_opts=opts.AxisOpts(
            type_="value",
            axistick_opts=opts.AxisTickOpts(is_show=0),
            splitline_opts=opts.SplitLineOpts(is_show=0),
        ),
        tooltip_opts=opts.TooltipOpts(is_show=0),
        title_opts=opts.TitleOpts(title="Python散点图展示科比职业生涯全部进球位置n       (微信公众号:会Excel的隔壁老王)",pos_bottom = "15%", pos_right = "25%"),
        legend_opts=opts.LegendOpts( pos_top = "85%"),
    )
    #.render("basic_scatter_chart.html")
)

c.render_notebook()

5e7e45ecd11c6cdba1fdff3e6135f7cb.png

完整python代码参考:

import numpy as np
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import ThemeType

df_Kobe = pd.read_csv("D:01会Excel的隔壁老王Excel报表20200516-科比职业生涯数据Kobe-data.csv")

#选择"shot_made_flag"不为空的所有数据,shot_made_flag=1位投进球,shot_made_flag=0为投丢的球

df_Kobe_notnull = df_Kobe[ pd.notnull(df_Kobe["shot_made_flag"]) ]

#分别选择投进、投丢的数据

df_Kobe_notnull_shot_made_flag_1 = df_Kobe_notnull[ df_Kobe_notnull.shot_made_flag == 1]
df_Kobe_notnull_shot_made_flag_0 = df_Kobe_notnull[ df_Kobe_notnull.shot_made_flag == 0]

#画图

c=(
    Scatter(init_opts=opts.InitOpts(width="700px", height="1300px",bg_color="#ffffff"))

    .add_xaxis(xaxis_data=df_Kobe_notnull_shot_made_flag_0["loc_x"].values.tolist())
    .add_yaxis(
        series_name="投偏",
        y_axis=df_Kobe_notnull_shot_made_flag_0["loc_y"].values.tolist(),
        symbol_size=3,
        label_opts=opts.LabelOpts(is_show=0),
        color="#542481",
    )

    .add_xaxis(xaxis_data=df_Kobe_notnull_shot_made_flag_1["loc_x"].values.tolist())
    .add_yaxis(
        series_name="投进",
        y_axis=df_Kobe_notnull_shot_made_flag_1["loc_y"].values.tolist(),
        symbol_size=2,
        label_opts=opts.LabelOpts(is_show=0),
        color="#FEDC56"
        #color="#66ff99",
    )

    .set_series_opts()
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(
            type_="value", splitline_opts=opts.SplitLineOpts(is_show=0)
        ),
        yaxis_opts=opts.AxisOpts(
            type_="value",
            axistick_opts=opts.AxisTickOpts(is_show=0),
            splitline_opts=opts.SplitLineOpts(is_show=0),
        ),
        tooltip_opts=opts.TooltipOpts(is_show=0),
        title_opts=opts.TitleOpts(title="Python散点图展示科比职业生涯全部进球位置n       (微信公众号:会Excel的隔壁老王)",pos_bottom = "15%", pos_right = "25%"),
        legend_opts=opts.LegendOpts( pos_top = "85%"),
    )
    #.render("basic_scatter_chart.html")
)

c.render_notebook()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值