可视化 | Pyecharts 单轴散点图(附完整代码)

简介: 可视化 | Pyecharts 单轴散点图(附完整代码)


大家好,我是欧K~。

本期主要利用pyecharts给大家展示单轴散点图的画法,希望对你有所帮助。

1. 示例数据

生成随机数据:

# 生成每周日期数据
hours = [str(i)+'h' for i in range(24)]
week_days = ['Sunday','Saturday', 'Friday', 'Thursday', 'Wednesday', 'Tuesday', 'Monday'];
data_days = [i for i in range(len(week_days))]
data_hours = [i for i in range(len(hours))]
# 随机生成每天每小时数据
data_points = [random.randint(0, 10) for j in range(len(week_days)) for i in range(len(hours))]
week_hours = [list(i) for i in itertools.product(data_days, data_hours)]
data_lastest = np.c_[week_hours,data_points].tolist()

示例数据(2*3):


2. 基础散点图

以Sunday为例:

# 基本散点图
scatter = Scatter(init_opts=opts.InitOpts(width='900px', height='400px', theme='light'))
scatter.add_xaxis(xaxis_data=hours)
scatter.add_yaxis('',
                y_axis=[item[2] for item in data_lastest if item[0] == 0],
                symbol_size=JsCode('function(p) { return p[1] * 4;}'),
                label_opts=opts.LabelOpts(is_show=False),
                )
scatter.set_global_opts(xaxis_opts=opts.AxisOpts(is_show=True),
                      yaxis_opts=opts.AxisOpts(is_show=True),
                      title_opts=opts.TitleOpts(title='Sunday'),
                      )
scatter.render_notebook()

效果:


3. 单轴散点图

所有点设置一行(单轴):

# 单轴散点图
single_axis, titles = [], []
scatter = Scatter(init_opts=opts.InitOpts(width='900px', height='400px', theme='light'))
scatter.add_xaxis(xaxis_data=hours)
# 单轴配置
single_axis.append({"left":'15%',
                    "name": 'Sunday',
                    "nameGap": 20,
                    "nameLocation": 'start',
                    "type": 'category',
                    "boundaryGap": False,
                    "data": hours,
                    "top": '15%',
                    "height": '10%',
                    "gridIndex": 0,
                    "nameTextStyle": {"fontSize": 16},
                    "axisLabel": { "interval": 2 }
                    })
scatter.add_yaxis('',
                y_axis=[item[2] for item in data_lastest if item[0] == 0],
                symbol_size=JsCode('function(p) { return p[1] * 4;}'),
                label_opts=opts.LabelOpts(is_show=False),
                )
scatter.options['series'][0]['coordinateSystem'] = 'singleAxis'
scatter.options['series'][0]['singleAxisIndex'] = 0
scatter.options['singleAxis'] = single_axis
scatter.set_global_opts(xaxis_opts=opts.AxisOpts(is_show=False),
                      yaxis_opts=opts.AxisOpts(is_show=False),
                      )
scatter.render_notebook()

效果:


4. 单轴叠加

叠加所有时间数据:

single_axis, titles = [], []
scatter = Scatter(init_opts=opts.InitOpts(width='900px', height='400px', theme='light'))
for idx, day in enumerate(week_days):
    pers = 100 / len(week_days)
    scatter.add_xaxis(xaxis_data=hours)
    # 单轴配置
    single_axis.append({"left": '10%',
                        "nameGap": 20,
                        "nameLocation": 'start',
                        "type": 'category',
                        "boundaryGap": False,
                        "data": hours,
                        "top": '{}%'.format(idx * pers + 5),
                        "height": '{}%'.format(pers - 10),
                        "gridIndex": idx,
                        "nameTextStyle": {"fontSize": 16},
                        "axisLabel": { "interval": 2 }
                        })
    titles.append(dict(text=day,top='{}%'.format(idx * pers + 5), left='2%'))
    scatter.add_yaxis('',
                    y_axis=[item[2] for item in data_lastest if item[0] == idx],
                    symbol_size=JsCode('function(p) { return p[1] * 4;}'),
                    label_opts=opts.LabelOpts(is_show=False),
                    )
    scatter.options['series'][idx]['coordinateSystem'] = 'singleAxis'
    scatter.options['series'][idx]['singleAxisIndex'] = idx
# 标题
scatter.options['singleAxis'] = single_axis
scatter.set_global_opts(
    xaxis_opts=opts.AxisOpts(is_show=False),
    yaxis_opts=opts.AxisOpts(is_show=False),
    title_opts=titles
    )
scatter.render_notebook()

效果:

所有参数均可以根据实际需要调整。

END


以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、点在看也可以分享让更多人知道

相关文章
|
数据可视化 数据挖掘 数据处理
【100天精通Python】Day61:Python 数据分析_Pandas可视化功能:绘制饼图,箱线图,散点图,散点图矩阵,热力图,面积图等(示例+代码)
【100天精通Python】Day61:Python 数据分析_Pandas可视化功能:绘制饼图,箱线图,散点图,散点图矩阵,热力图,面积图等(示例+代码)
531 0
|
3月前
|
数据可视化 Python
Python中的数据可视化:使用Matplotlib绘制图表
【9月更文挑战第11天】在这篇文章中,我们将探索如何使用Python的Matplotlib库来创建各种数据可视化。我们将从基本的折线图开始,然后逐步介绍如何添加更多的功能和样式,以使您的图表更具吸引力和信息量。无论您是数据科学家、分析师还是任何需要将数据转化为视觉形式的专业人士,这篇文章都将为您提供一个坚实的起点。让我们一起潜入数据的海洋,用视觉的力量揭示其背后的故事。
56 16
|
4月前
|
数据可视化 Python
Pandas可视化指南:从零教你绘制数据图表
Pandas可视化指南:从零教你绘制数据图表
|
6月前
|
数据可视化 Python
利用Matplotlib绘制数据可视化图表
**摘要:** 本文介绍了Python的绘图库Matplotlib在数据分析和科学计算中的重要性。Matplotlib是一个开源库,提供类似MATLAB的接口,支持静态、动态和交互式图表的绘制,并能保存为多种格式。文章详细讲解了Matplotlib的基本用法,包括安装库、导入模块和绘制简单折线图的步骤。还展示了如何绘制柱状图并添加数据标签。通过这些例子,读者可以了解如何利用Matplotlib进行数据可视化,并对其进行自定义以满足特定需求。
55 4
|
7月前
|
数据可视化 Python
使用pyecharts库绘制柱状图:基础与进阶
使用pyecharts库绘制柱状图:基础与进阶
146 0
|
7月前
|
存储 JSON 数据可视化
数据可视化——用python绘制简单的折线图
数据可视化——用python绘制简单的折线图
|
JSON 数据可视化 数据格式
pyecharts可视化
pyecharts画图包是python里非常好用的可视化包。其也可以通过json配置画图组合,做一个可视化大屏界面。最后可以制作如下可视化图表,掌握其制作方法其他更多组合可以自行配置。
86 0
|
Python
Python常用画图代码(折线图、柱状图、饼图)
Python常用画图代码(折线图、柱状图、饼图)
236 0
|
Python
python pyecharts 画图 饼图柱状图
python pyecharts 画图 饼图柱状图
230 0
python pyecharts 画图 饼图柱状图
|
开发者
pyecharts基础之柱状图的绘制
pyecharts分为v0.5.X和v1两个大版本,0.5.x 版本将不再进行维护推荐使用v1版本
109 0