pyecharts 绘制三维散点图_使用pyecharts绘制三维散点图,根据类别使用不同颜色区分数据...

本文介绍了使用pyecharts绘制三维散点图时遇到的问题及不同版本间的差异。在新版本中,尽管官方示例不全,作者通过尝试发现老版本(pyecharts 0.5)能更好地满足需求,生成不同类别用不同颜色区分的3D散点图。文章分享了代码示例,并期待与熟悉新版本pyecharts属性的读者交流。
摘要由CSDN通过智能技术生成

pyecharts是我个人认为较为灵活,颜值颇高的可视化工具。

但是在使用过程中发现不同版本的差异过大,有时候旧版本可能使用起来更为方便。

在新版本中,官方给出的示例代码并不充分,很多功能难以自行学习实现。

首先上代码:

def plot_scatter(X, Y, save_dir): #version 1.5-1.9

from pyecharts.charts import Scatter3D, Page

from pyecharts import options as opts

from pyecharts.globals import ThemeType

from pyecharts.render import make_snapshot

from snapshot_selenium import snapshot

Y = np.expand_dims(Y, 1)

data = np.concatenate((X,Y),axis=1)

piece=[

{'value': 0,'label': 'class A','color':'#e57c27'},

{'value': 1, 'label': 'class B','color':'#72a93f'},

{'value': 2, 'label': 'class C','color':'#368dc4'}

]

sc1 = Scatter3D()

sc1.add("", data.tolist())

sc1.set_global_opts(title_opts=opts.TitleOpts(title="3D scatter"),

visualmap_opts=opts.VisualMapOpts(dimension=3,is_piecewise=True, pieces=piece))

sc1.render(save_dir+'/test.html')

make_snapshot(snapshot, sc1.render(), save_dir+'/test.png')

这段代码适用于最新的pyecharts版本,但是生成的效果却无法达到预期目标。具体情况是三个类别的点不在同一个坐标系中!(可以通过坐标轴的数值来判断)

268732fca3bd0741d20e23917ee27055.png

这个问题即使我看了好几遍手册也没找到解决方案,同时也没有找到遇到相同问题的朋友,如果有大佬知道怎么解决,望告知!

然后,在无意间发现,pyecharts的版本间差异很大,于是我就开始了漫长的版本挑选之旅~

def plot_scatter(X, Y, save_dir): # version 0.5

from pyecharts import Scatter3D, Page

Y = np.expand_dims(Y, 1)

data = np.concatenate((X,Y),axis=1)

piece=[

{'value': 0,'label': 'class A','color':'#e57c27'},

{'value': 1, 'label': 'class B','color':'#72a93f'},

{'value': 2, 'label': 'class C','color':'#368dc4'}

]

sc1 = Scatter3D("3D scatter", width=900, height=600)

sc1.add("", data.tolist(),

visual_dimension=3,

is_visualmap=True,

is_piecewise= True,

pieces= piece

)

sc1.render(save_dir+'/test.html')

最后发现pyecharts==0.5的版本最符合我的要求,生成图片如下(图例等细节部分没有仔细调整,和具体使用的浏览器好像也有关系,以下是firefox展示的效果,我记得chrome是没有问题的)。

2d5c85be57d3ab1c089df987a32655ba.png

细节上的调整往往需要更多的时间,为了达到预期效果,我花费了很多时间在检索和尝试当中。

希望以上内容对大家有所帮助,也希望熟悉新版pyecharts属性的朋友们可以多多跟我交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值