原神 > 攻略 > 原神怎么画的(怎么用 Python 绘制这样的图)

原神怎么画的(怎么用 Python 绘制这样的图)

发布于:2022-12-23 17:04:32 编辑:琴 来源:原神攻略网 阅读:

最近看到一张图,感觉很酷炫,搜索得知是叫做弦图。看到很多用R语言绘制的案例,以及有Excel大佬用VBA也绘制了一个,简直不要太强。

那么,Python可以绘制吗?找了一圈发现有一个付费的第三方包可以实现,因为需要付费,这里就不介绍了。最终,可算让我找到了Python绘制的免费方案,今天我们就一起来看看吧!

1. 什么是弦图

下面这张图就是弦图,主要用于展示多个对象之间的关系,连接在圆上任意两点之间的线段叫做弦。

对于弦图,有以下特点:

用不同颜色区分不同的对象(点)圆上的两点之间的弦表示之间存在关系弦的宽度表示关系程度,关系越明显则弦宽越宽因为不同对象颜色不同,可以通过两点之间弦的颜色区分是对象->对象的方向

一般来说,弦图可以用于以下几种场景:

人口迁徙(不同城市之间迁入迁出)电竞战队或球队之间选手交易具有重叠成分的不同成品与各成分关系类似以上几类场景的情况等等

今天,我们绘制弦图要用到的可视化库是holoviews

2. 弦图绘制

HoloViews是一个开源的Python库,可以用非常少的代码行中完成数据分析和可视化,除了默认的matplotlib后端外,还添加了一个Bokeh后端。Bokeh提供了一个强大的平台,通过结合Bokeh提供的交互式小部件,可以使用HTML5 canvas和WebGL快速生成交互性和高维可视化,非常适合于数据的交互式探索。官网:http://holoviews.org/

首先,我们需要安装第三方库holoviews

pip install holoviews

我们先看看官方案例

import holoviews as hv from holoviews import opts, dim from bokeh.sampledata.airport_routes import routes, airports # 选择bokeh引擎 hv.extension('bokeh') # Count the routes between Airports route_counts = routes.groupby(['SourceID', 'DestinationID']).Stops.count().reset_index() nodes = hv.Dataset(airports, 'AirportID','City') chord = hv.Chord((route_counts, nodes), ['SourceID', 'DestinationID'], ['Stops']) # Select the 6 busiest airports busiest = list(routes.groupby('SourceID').count().sort_values('Stops').iloc[-6:].index.values) busiest_airports = chord.select(AirportID=busiest, selection_mode='nodes') busiest_airports.opts( opts.Chord(cmap='Category20', edge_color=dim('SourceID').str(), height=500, labels='City', node_color=dim('AirportID').str(), width=500))

弦图

我们拿玩家在不同游戏中的付费金额来绘制弦图,演示每一个步骤

2.1 数据准备

用以下数据进行案例演示

import pandas as pd df = pd.read_clipboard() df

姓名王者曙光吃鸡原神金铲铲扎金花小明20015101217才哥11180115小华10914284小青18412368小天179134126

我们需要将宽表变为窄表(如果你就是窄表,则不需要这么操作)

data = df.melt(id_vars=['姓名'], value_vars=['王者', '曙光', '吃鸡', '原神', '金铲铲', '扎金花'] ) data.head()

姓名variablevalue0小明王者201才哥王者112小华王者103小青王者184小天王者17

用于绘制弦的数据已经有了:

弦的方向就是姓名->variable弦的宽度就是value

接下来,我们搞定 圆上的对象(点)

node = pd.DataFrame(data['姓名'].append(data['variable']).unique(), columns=['节点'] ) node

节点0小明1才哥2小华3小青4小天5王者6曙光7吃鸡8原神9金铲铲10扎金花

最终,对象节点数据如下:

nodes = hv.Dataset(node, '节点',)

搞定这些,我们就可以进行绘制了

2.2 绘制操作

chord = hv.Chord((route_counts, nodes), ['姓名', 'variable'], ['value']) # 可选择节点数 busiest = node['节点'].to_list() busiest_airports = chord.select(AirportID=busiest, selection_mode='nodes') busiest_airports.opts( opts.Chord(cmap='Tab20', edge_color=dim('姓名').str(), height=500, width=500, labels='节点', node_color='节点', edge_visible=True ))

最终,我们得到效果如下:

弦图案例

这个弦图是可以交互的,可以save本地html文件。

hv.save(busiest_airports,r'output.html')

保存本地

其实,弦图绘制还有很多参数,大家可以自己help试试(比如背景颜色、字体大小、弦的颜色cmap等等)

以上就是本次全部内容,相信大家也可以做出酷炫的弦图了!

以上内容就是为大家推荐的原神怎么画的(怎么用 Python 绘制这样的图)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题

二维码

扫一扫关注我们

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件至 123***789@qq.com举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

本文标题:原神怎么画的(怎么用 Python 绘制这样的图)

本文地址:https://www.xiaobeiyey.com/article/74171.html

标签:

后台-模块-广告管理-内容底部广告位
后台-模块-广告管理-内容底部广告位

相关文章

  • 《原神》拾枝杂谈“纳西妲:遍解玄奥” 她还是个孩子

    《原神》拾枝杂谈“纳西妲:遍解玄奥” 她还是个孩子

    随着3.2版本虚空鼓动,劫火高扬在今日(11月2日)更新上线,《原神》官方同时放出了新版本角色之一草神纳西妲的拾枝杂谈纳西妲:遍解玄奥。若不是禁忌...

    2026-01-28

  • 原神蟹沙皇怎么打

    原神蟹沙皇怎么打

    就在最近原神进就要上线月之一版本了,在本次版本更新了许多新内容,有新剧情,新角色,新圣遗物,新的任务,还有新的成就,那么有不少小伙伴好奇...

    2025-09-18

  • 原神沾露虾仁获取方法

    原神沾露虾仁获取方法

    原神里面有各式各样的食物,每一种食物的获得方法都是不一样的,今天给大家带来的是游戏里面的沾露虾仁获取方法,还有很多的小伙伴不清楚,那么下...

    2025-09-18

  • 草灵龛位置

    草灵龛位置

    原神草灵龛在哪?目前须弥地图中,发现的草地灵龛一共有4个,今天我们给大家带来了草灵龛位置介绍,一起来看看吧。 草灵龛位置 第一个是在奥摩斯港...

    2025-07-23

  • 生长碧翠碎屑怎么获得

    生长碧翠碎屑怎么获得

    生长碧翠碎屑怎么获得?原神生长碧翡碎屑是游戏中非常重要的一种材料,玩家们想要突破最新的角色草神需要使用到,今天我们带来了原神生长碧翠碎屑...

    2025-07-23

  • 原神常驻池90保底会更新吗

    原神常驻池90保底会更新吗

    在原神游戏中想要获得五星角色就需要去抽卡,抽取角色,一些玩家好奇原神常驻池90保底会更新吗,下面小编就跟大家介绍一下吧。 原神常驻池90保底会...

    2025-07-23

  • 原神思忆之矢在哪刷

    原神思忆之矢在哪刷

    在原神游戏中想要思忆之矢在哪刷,一些玩家好奇原神思忆之矢在哪刷,下面小编就跟大家介绍原神思忆之矢获取方法一下吧。 原神思忆之矢在哪刷 在原...

    2025-07-23

  • 怎么才能提现满命夜兰的伤害

    怎么才能提现满命夜兰的伤害

    原神满命夜兰怎么玩?之前本站分别介绍了夜兰的培养思路,但发现依旧有挺多人问6命夜兰圣遗物武器如何选择,于是我今天决定专门做一期满命夜兰培养...

    2025-07-23

  • 胡桃为什么这么火

    胡桃为什么这么火

    原神胡桃为什么这么火?之前本站分别介绍了胡桃为什么这么火的原因,有兴趣的朋友赶紧一起来看看吧,希望对各位伙伴有所帮助。 胡桃为什么这么火 原...

    2025-07-23

  • 阿倍良久残魂寄寓之物三个地点

    阿倍良久残魂寄寓之物三个地点

    原神胡桃为什么这么火?之前本站分别介绍了胡桃为什么这么火的原因,有兴趣的朋友赶紧一起来看看吧,希望对各位伙伴有所帮助。 阿倍良久残魂寄寓之...

    2025-07-23

评论

      发表评论

      看不清楚,点击刷新

      网站首页

      QQ咨询