技术标签: python 数据分析 少女的技术文章 数据可视化
今天,来给大家介绍 Python 中一款炒鸡好用的可视化库——Pyecharts。那么在这里注意奥~这个库实际上是对接的前端框架——echarts。款式没得挑剔,不过在安装这块有点小陷阱,也就是针对于版本这块分为 v0.5.X 和 v1 ,而这两个版本之间的使用又是不兼容的。所以得先说好,我们本篇文章所有的代码所依赖的都是v1的版本。如下图:
在这里,我给大家介绍几种比较常用的基础图绘制方法,那其实代码看不懂也木的一点关系。因为,画图嘛,只要替换数据即可。其次,我是非常建议大家去欣赏以下他那详细的说明文档。不要害怕英文,因为Pyecharts是全中文的说明文档。嘿嘿,官网链接:https://pyecharts.org/#/zh-cn
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from faker import Faker
c = (
Bar(
init_opts=opts.InitOpts(
width="500px",
height="400px",
theme=ThemeType.LIGHT,
bg_color="skyblue"
)
)
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
)
c.render_notebook()
横向条形图只需要调用reversal_axis()即可。
c = (
Bar()
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
.reversal_axis()
.set_series_opts(label_opts=opts.LabelOpts(position="right"))
.set_global_opts(title_opts=opts.TitleOpts(title="Bar-翻转 XY 轴"))
)
堆叠条形图只要在添加y轴的函数add_yaxis上添加stack参数即可。
c = (
Bar()
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values(), stack="stack1")
.add_yaxis("商家B", Faker.values(), stack="stack1")
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="Bar-堆叠数据(全部)"))
)
c.render_notebook()
c = (
Bar()
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values(), category_gap="80%")
.set_global_opts(title_opts=opts.TitleOpts(title="Bar-单系列柱间距离"))
)
c.render_notebook()
网格图,是在x轴和y轴上,都绘制横线,形成的网格。可以在opts.AxisOpts中通过设置splitline_opts实现。
c = (
Bar()
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title="Scatter-显示分割线"),
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
)
)
c.render_notebook()
箱线图使用pyecharts.charts.Boxplot来实现。
import numpy as np
import pandas as pd
from pyecharts.charts import Boxplot
"""
注意:箱型图不支持链式调用,因为数据需要c.prepare_data()
"""
v1 = [
[850, 740, 900, 1070, 930, 850, 950, 980, 980, 880, 1000, 980],
[960, 940, 960, 940, 880, 800, 850, 880, 900, 840, 830, 790],
]
v2 = [
[890, 810, 810, 820, 800, 770, 760, 740, 750, 760, 910, 920],
[890, 840, 780, 810, 760, 810, 790, 810, 820, 850, 870, 870],
]
c = Boxplot()
c.add_xaxis(["商品1","商品2"])
c.add_yaxis("A",c.prepare_data(v1))
c.add_yaxis("B",c.prepare_data(v2))
c.render_notebook()
from pyecharts.charts import Map
from pyecharts import options as opts
from faker import Faker
"""
中国地图
淘宝商家的商品售卖情况
"""
c = (
Map()
.add("淘宝的商家商品售卖情况",[(x,y) for x,y in zip(Faker.provinces,Faker.values())],"china") # 值是元组或列表
.set_global_opts(
visualmap_opts=opts.VisualMapOpts() # 颜色越深 说明越多
)
)
c.render_notebook()
"""
广东省
人口分布情况(伪数据)
"""
c = (
Map()
.add("广东省各个城市密度", [list(z) for z in zip(Faker.guangdong_city, Faker.values())], "广东")
.set_global_opts(
title_opts=opts.TitleOpts(title="Map-广东地图"),
visualmap_opts=opts.VisualMapOpts(),
)
)
c.render_notebook()
"""
世界地图
"""
c = (
Map()
.add("商家A", [list(z) for z in zip(Faker.country, Faker.values())], "world")
.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) # 不显示默认标签
.set_global_opts(
title_opts=opts.TitleOpts(title="Map-世界地图"),
visualmap_opts=opts.VisualMapOpts(max_=200),
)
)
c.render_notebook()
奥霍,突然记起一件非常重要的事情,在代码中涉及到了一个faker文件,为了保障大家可以运行代码,我将这个faker文件给大家放到了公众号的自动回复区域奥,欢迎大家到公众号留言faker即可获取。
两种:1.xsl:if<xsl:iftest="逻辑表达式"></xsl:if>2.xsl:choose<xsl:choose><xsl:whentest="逻辑表达式"></xsl:when><xsl:whentest="逻辑表达式"></xsl:when...
深度强化学习实验室原文来源:https://arxiv.org/pdf/1708.07902.pdf翻译作者:梁天新博士编辑:DeepRL在本文中,我们将回顾最近的Deep Learni..._分层深度强化学习 文献翻译
【转载】Centos 7 yum安装tomcat 命令:系统环境CentOS Linux release 7.2.1511 (Core)一、搭建准备:1、先到tomcat官网https://tomcat.apache.org/查看下载路径2、安装wget[root@ecs-19cb ~]# yum install -y wget3、确认是否安装成功[root@ecs-19cb ~]# rpm -q..._centos tomcat 命令行
任务队列 在一个私人博客网站中,粉丝关注博主需要添加自己的邮箱,以便接收邮件确认信息和通知信息;博主每发布一篇新文章时,需要向他的粉丝们同步发送邮件通知; 诸如,当页面需要进行如发送邮件、复杂数据运算等耗时较长的操作是会阻塞页面的渲染。为了避免用户等待太久,应该使用独立的线程来完成这类操作。不过一些编程语言或框架不易实现多线程,这时可以通过其他进程来实现。设想有一个进程能够完成发邮件的功能,那么在页面中只需要想办法通知这个进程向指定的地址发送邮件就可以了。 这个通知的过程可以借助任务队列来实现。_redis订阅通知
本意想让一个php脚本(fpm或者cli下)通过set_time_out或者max_execution_time设置只执行5秒。我原想是这样的代码ini_set("max_execution_time",5);set_time_limit(5);for($i=0;$i<=10;$i++){echo $i."\n";sleep(1);}但是cli下结果是012345678910fpm也一样。思...
1.部署安装Dubbo提供了可视化的界面管理工具,方便我们对服务进行管理,它就是dubbo admin1.1下载解压下载地址: https://github.com/apache/incubator-dubbo-ops或者直接在Ubuntu终端使用克隆git clone https://github.com/apache/incubator-dubbo-ops.git..._ubuntu dubbo 安装
Java有能力抵挡LAMP的进攻吗?或是LAMP、.Net与Java将三分天下乎?难道昔日“酷毙了”的Java已经成为过时技术了吗…… 随着互联网开源潮流的迅速发展,全球IT业正迎来一个新的发展格局成长期。对全球的开源体系——LAMP(Linux、Apache、MYSQL、PHP)而言,其所代表的开源软件及应用,以其开放性、低成本、安全性、适用性以及可靠性能,正对传统软件、硬件和系统
目录一、画一个N边形二、画五角星三、一闪一闪亮晶晶Python 中的画图工具——turtle(海龟绘图),turtle 是 Python 中自带的绘图模块,最初来自于 Wally Feurzeig, Seymour Papert 和 Cynthia Solomon 于 1967 年所创造的 Logo 编程语言。使用 turtle 控制画笔在画板上画画。而这个画笔是有形状的,默认是一个小箭头,我们可以使用turtle.shape('turtle')将其设成一个小海龟。除了变成小海龟外,.._python画星星代码
按照官方文档,第一次接触了Echarts GL,是一次很有趣的体验^_^,不过在官网上下载的echarts-gl.js和echarts.js版本兼容不好,时常会报一些错误。先看看我解决错误的方法(很lowO(∩_∩)O哈哈~) 错误:Uncaught Error: echarts version is too old, needs 4.0.3 or higher at..._echarts-gl
by Kungen@CyberSword想要查找恶意样本,首先要知道查找样本所需的基本信息,包括病毒名称、样本文件名、HASH值。对于最新发现的病毒,SECURELIST、VirusTotal网站会第一时间放出病毒和样本的分析报告,这些分析报告中包含我们查找样本所需要的信息,以红色十月(Red October)病毒样本为例:SECURELIST上关于“红色十月”的分析文章中包含了样本文件名以及对应..._ex_virus.html
MIT 6.S081,操作系统工程实验课,搭建riscv环境_xv6ubuntuwsl
SFINAE : Substitution Failure Is Not An Error (替换失败不是错误)。知乎 - C++模板进阶指南:SFINAE 推荐阅读。SFINAE最主要的作用,是保证编译器在泛型函数、偏特化、及一般重载函数中遴选函数原型的候选列表时不被打断。除此之外,它还有一个很重要的元编程作用就是实现部分的编译期自省和反射。cppreference - SFINAE在函数模板的重载决议中应用此规则:当将模板形参替换为显式指定的类型或推导的类型失败时,从重载集中丢弃这个._c++ sfinae用途