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

博主分享了在使用PyEcharts进行数据可视化时遇到的新旧版本差异问题,特别是在3D散点图的绘制上。发现新版本的示例不足导致难以实现预期效果,而旧版本0.5则更符合需求。文中提供了两个不同版本的代码示例,并展示了0.5版本生成的3D散点图。更新部分提到了视觉映射文字颜色的调整方法。
摘要由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版本,但是生成的效果却无法达到预期目标。具体情况是三个类别的点不在同一个坐标系中!(可以通过坐标轴的数值来判断)

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

然后,在无意间发现,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是没有问题的)。

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

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


更新:

上图visualmap的文字没有显示是因为颜色问题,可以加上限制

visual_text_color="#000"

就可以得到解决~

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值