百摩网
当前位置: 首页 生活百科

pyecharts教程pdf(硬核干货分享几个Pyecharts技巧)

时间:2023-05-22 作者: 小编 阅读量: 7 栏目名: 生活百科

以上都是通过JS代码来实现然后再添加到Pyecharts代码当中象形柱状图象形柱状图是普通柱状图的一种衍生,普通的柱状图是由一根一根的柱子形成的,而象形柱状图则是对这个柱子的形状又做了进一步的优化,显得更加的可爱代码如下c=(PictorialBar().add_xaxis(location).add_yaxis("",values,label_opts

作者:俊欣

来源:关于数据分析与可视化

想必大家应该也已经看到很多关于数据分析的内容了,今天小编就为大家来分享一下国产可视化库pyecharts在绘制图表时一些的技巧,帮助读者画出更加酷炫以及可读性更高的图,当然在这之前呢,我们首先需要导入相应的所要用到的模块

from pyecharts import options as optsfrom pyecharts.charts import Bar, Timeline, Map, Pie, Linefrom pyecharts.faker import Fakerfrom pyecharts.globals import ThemeTypefrom pyecharts.commons.utils import JsCode

不一样的柱状图

我们先从柱状图着手,来绘制一张瀑布形状的柱状图,代码如下

x_data = [f"12月{str(i)}日" for i in range(1, 12)]y_total = [0, 900, 1245, 1530, 1376, 1376, 1511, 1689, 1856, 1495, 1292]y_in = [900, 345, 393, "-", "-", 135, 178, 286, "-", "-", "-"]y_out = ["-", "-", "-", 108, 154, "-", "-", "-", 119, 361, 203]bar = (Bar().add_xaxis(x_data).add_yaxis(series_name="",y_axis=y_total,stack="总量",itemstyle_opts=opts.ItemStyleOpts(),).add_yaxis(series_name="上升", y_axis=y_in, stack="总量").add_yaxis(series_name="下降", y_axis=y_out, stack="总量").set_global_opts(yaxis_opts=opts.AxisOpts(type_="value")).render("bar_waterfall_plot.html"))

output

从上面绘制出来的图表中可以看出,红色代表的是上升而藏青色代表的是下降,在前三天上升的趋势之后便迎来了两天的下降走势,然后又是连续三天的上升与下降,这张图我们可以直观的看出随着时间的推移数据总体是呈现上升还是下降,用处非常的大哦!

柱状图Y轴上面的个性化标记

我们还可以自己设定Y轴上面的标记,代码如下

c = (Bar().add_xaxis(['小米', '三星', '华为', '苹果', '魅族', 'VIVO', 'OPPO']).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(),yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} 万台/月")),).render("bar_yaxis_formatter.html"))

output

上图当中的Y轴上的标记后面添加了万台/月的注释,这样就可以更加地让人明白图中数据的深意了

柱状图中做出标记

我们还能够对柱状图中的某些特殊的值做出标记,例如是最大/最小值、平均值等等,代码如下

c = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts()).set_series_opts(label_opts=opts.LabelOpts(is_show=False),markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max", name="最大值"),opts.MarkPointItem(type_="min", name="最小值"),opts.MarkPointItem(type_="average", name="平均值"),]),).render("bar_markpoint_type.html"))

output

我们可以看到直方图当中的指定的数值被标了出来,变得更加的直观,可读性更高。

对X轴和Y轴标上名字

同时我们还可以对X轴和Y轴标上名字,告诉用户X轴以及Y轴代表的是什么数据,具备更强的可读性和直观性,代码如下

c = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(),yaxis_opts=opts.AxisOpts(name="我是 Y 轴"),xaxis_opts=opts.AxisOpts(name="我是 X 轴"),).render("bar_xyaxis_name.html"))

output

Pyecharts和JavaScript的联用

在Pyecharts代码当中加入JS代码,倒是并不少见,例如我们可以在当中添加JS代码来改变可视化图表的颜色,代码如下

color_function = """function (params) {if (params.value > 0 && params.value < 30) {return 'red';} else if (params.value > 30 && params.value < 80) {return 'blue';}return 'purple';}"""c = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A",Faker.values(),itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function)),).add_yaxis("商家B",Faker.values(),itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function)),).set_global_opts(title_opts=opts.TitleOpts()).render("bar_custom_bar_color.html"))

output

我们在对于不同数值进行了不同的处理方式,0-30这个范围的是红色、30-80的是蓝色,而其余数值的则是紫色。以上都是通过JS代码来实现然后再添加到Pyecharts代码当中

象形柱状图

象形柱状图是普通柱状图的一种衍生,普通的柱状图是由一根一根的柱子形成的,而象形柱状图则是对这个柱子的形状又做了进一步的优化,显得更加的可爱

代码如下

c = (PictorialBar().add_xaxis(location).add_yaxis("",values,label_opts=opts.LabelOpts(is_show=False),symbol_size=18,symbol_repeat="fixed",symbol_offset=[0, 0],is_symbol_clip=True,symbol=SymbolType.ROUND_RECT,).reversal_axis().set_global_opts(title_opts=opts.TitleOpts(),xaxis_opts=opts.AxisOpts(is_show=False),yaxis_opts=opts.AxisOpts(axistick_opts=opts.AxisTickOpts(is_show=False),axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(opacity=0)),),).render("pictorialbar_base.html"))

output

当然我们还能够对样式自定义,如下图所示,

整个代码的实现和上面的基本一致,这些自定义样式的数据放置在json文件当中,然后从该文件中读取里面的内容

with open("symbol.json", "r", encoding="utf-8") as f:symbols = json.load(f).add_yaxis("2015",[{"value": 157, "symbol": symbols["reindeer"]},{"value": 21, "symbol": symbols["ship"]},{"value": 66, "symbol": symbols["plane"]},{"value": 78, "symbol": symbols["train"]},{"value": 123, "symbol": symbols["car"]},],label_opts=opts.LabelOpts(is_show=False),symbol_size=22,symbol_repeat="fixed",symbol_offset=[0, 5],is_symbol_clip=True,)

    推荐阅读
  • 怎么调整行间距(如何调整行间距)

    怎么调整行间距?下面更多详细答案一起来看看吧!或者点击段落页面右下角的向下箭头图标,调整行距,按enter键。或者单击鼠标右键,点击段落,调整行距,按enter键。

  • 你所在的地区主要优势产业有哪些你有意在哪个产业中展(沿线六大经济走廊优势产业及制造业国际合作现状分析)

    制造业是中国与“一带一路”沿线国家国际合作的重要组成部分。加强六大经济走廊制造业合作对“一带一路”倡议的推进实施意义重大。以此为依托,加强制造业合作,践行互利共赢原则,可以对“一带一路”沿线国家发挥示范作用,提升“一带一路”倡议的认同度,增强合作信心。在“一带一路”沿线国家总体出口方面,工业制成品竞争优势要弱于初级产品,初级产品中平均各门类极具竞争力国家数量占总体的19%,而在工业制品占比仅为3.5%。

  • 最终幻想核心危机攻略(最终幻想最全完美攻略)

    最终幻想7核心危机我认为是最优秀的PSP游戏之一,当年游玩时,CG真的是震撼到我了,剧情更是没话说,可以说第一次感动到我的游戏,不过游戏性确实差点。游戏简介本作游戏故事发生在1997年发售的PS版《最终幻想7》剧情的7年前,故事则围绕战士“扎克斯”展开。讲述了扎克斯与其身边人的故事,其中还有全新的角色加入。当然在《最终幻想7》中大家熟知的角色“克劳德”以及“萨菲罗斯”和“爱丽丝”都会出现在本作中。

  • 钓鱼抛竿钓点技巧(钓鱼抛竿钓点操作技巧)

    劈式就是迎头劈下,钓鱼人双腿稍开,双手握住鱼竿朝后举起,钓竿,鱼钩,以及人练成一条线直线,双臂使劲,从头顶大力抛出,钓钩到达预定钓点处。这样出来的线组,不容易磨损主线,线组平衡达到需求,吃口无阻碍,上鱼率高。然后收回铅坠,上饵抛投,在预定好的钓位多次抛投,抖动钓饵料,反复多次后,窝子打成再垂钓。抛竿钓在选择钓位时,必要的一点就是避开人群,选择抛竿钓人群较少的地方。

  • 赵文卓的全家近照(50岁赵文卓豪宅内庆生)

    近日,演员赵文卓在某社交平台上分享了自己50岁生日的庆生照。虽然大女儿不在身旁,但赵文卓有另外两个孩子和老婆陪伴在身旁,想必也十分开心。赵文卓在2006年与妻子张丹露结婚,婚后感情一直稳定甜蜜。结婚之后,赵文卓和张丹露共同孕育了3个孩子,两个女儿一个儿子,一家五口可谓是羡煞旁人。作为从小习武、因武打戏出名的赵文卓,在他硬汉的外表下,有一颗柔软的心。

  • 锋芒毕露的意思是什么意思(锋芒毕露的意思)

    接下来我们就一起去研究一下吧!锋芒毕露的意思是什么意思锋芒毕露,汉语成语,拼音是fēngmángbìlù,意思是锐气和才华全都显露出来。多指人好表现自己。出自《汉衣冠》。

  • 儒组词(儒是什么意思)

    以下内容希望对你有帮助!古代从巫、史、祝、卜中分化出来的专司礼仪的人。通“懦(nuò)”。

  • 电脑显卡接口一般都是哪个(配置电脑显卡接口能不能对上号)

    PCI插槽也是主板带有最多数量的插槽类型。随着显示芯片的发展,PCI总线日益无法满足其需求。英特尔于1996年7月正式推出了AGP接口,它是一种显示卡专用的局部总线。严格的说,AGP不能称为总线,它与PCI总线不同,因为它是点对点连接,即连接控制芯片和AGP显示卡,但在习惯上我们依然称其为AGP总线。AGP接口是基于PCI2.1版规范并进行扩充修改而成,工作频率为66MHz。所以,它拥有很高的传输速率,这是PCI等总线无法与其相比拟的。

  • 池贤宇生如夏花(池贤宇酷酷的魅力)

    池贤宇酷酷的魅力19日下午,演员池贤宇现身首尔麻浦区,参加MBC电视剧《生死决断罗曼史》的制作发布会《生死决断罗曼史》讲述身为执着于荷尔蒙研究的内分泌科医生的女主人公将身为神经外科医生的男主人公选做自己的荷尔蒙实验对。

  • 瓜子二手车保卖的流程(瓜子升级二手车交易流程)

    为解决调表车、事故车、泡水车等车况检测疑难问题,瓜子二手车此次推出“干净模式”,在车况检测方面将通过云评估、引入第三方数据等多项措施,为“车况透明化”保驾护航。鉴于二手车交易流程的复杂性,买家在签约及过户环节权益受到侵害是二手车交易中的高发问题。为规避这些问题,瓜子二手车设立信息预录及保证金制度。