pyechart练习(一):画图小练习

news2025/1/20 13:19:28

1、使用Map制作全球人口分布图

import math
import os

import matplotlib.pyplot as plt
from pyecharts.charts import Map
from pyecharts import options as opts

# 只有部分国家的人口数据
POPULATION = [["China", 1420062022], ["India", 1368737513], ["United States", 329093110], ["Indonesia", 269536482], \
["Brazil", 212392717], ["Pakistan", 204596442], ["Nigeria", 200962417], ["Bangladesh", 168065920], \
["Russia", 143895551], ["Mexico", 132328035], ["Japan", 126854745], ["Ethiopia", 110135635], \
["Philippines", 108106310], ["Egypt", 101168745], ["Vietnam", 97429061], ["DR Congo", 86727573], \
["Turkey", 82961805], ["Iran", 82820766], ["Germany", 82438639], ["Thailand", 69306160], ["Niue", 1628], \
["United Kingdom", 66959016], ["France", 65480710], ["Tanzania", 60913557], ["Italy", 59216525], \
["South Africa", 58065097], ["Myanmar", 54336138], ["Kenya", 52214791], ["South Korea", 51339238], \
["Colombia", 49849818], ["Spain", 46441049], ["Uganda", 45711874], ["Argentina", 45101781], \
["Ukraine", 43795220], ["Algeria", 42679018], ["Sudan", 42514094], ["Iraq", 40412299], \
["Poland", 38028278], ["Canada", 37279811], ["Afghanistan", 37209007], ["Morocco", 36635156], \
["Saudi Arabia", 34140662], ["Peru", 32933835], ["Uzbekistan", 32807368], ["Venezuela", 32779868], \
["Malaysia", 32454455], ["Angola", 31787566], ["Mozambique", 31408823], ["Ghana", 30096970], \
["Nepal", 29942018], ["Yemen", 29579986], ["Madagascar", 26969642], ["North Korea", 25727408], \
["Côte d'Ivoire", 25531083], ["Cameroon", 25312993], ["Australia", 25088636], ["Tokelau", 1340],
["Holy See", 799]]

# 鼠标不控制缩放、不显示小红点、不显示图表标签
attrs = []
values = []
for pop in POPULATION:
attrs.append(pop[0])
values.append(pop[1])
map = Map()
map.add('全球人口分布', POPULATION, maptype='world', is_roam=False, is_map_symbol_show=False,
label_opts=opts.LabelOpts(is_show=False))
map.set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=1500000000))
map.render('a.html')
os.system("../render.html")

2、双Y轴图

x_data = ['Apple', 'HuaWei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu']
y_data_1 = [123, 153, 89, 107, 98, 23]
y_data_2 = [13, 15, 9, 17, 8, 6]

from pyecharts.charts import Bar, Line

b = Bar()
b.add_xaxis(x_data)
b.add_yaxis('重庆门店数', y_data_2)
b.extend_axis(yaxis=opts.AxisOpts(name='全国门店数', position='right'))
b.extend_axis(yaxis=opts.AxisOpts(name='重庆门店数', position='left'))

l = Line()
l.add_xaxis(x_data)
l.add_yaxis('全国门店数', y_data_1, yaxis_index=1)
b.overlap(l)
b.render('b.html')
# os.system('../render.html')

3、叠加多图

x_data, data_1, data_2 = [], [], []
for i in range(50):
data_1.append((math.sin(i / 5) * (i / 5 - 10) + i / 6) * 5)
data_2.append((math.sin(i / 5) * (i / 5 + 10) + i / 6) * 3)
x_data.append(i + 1)

b1 = Bar()
b1 = Bar(init_opts=opts.InitOpts(width='1000px',height='600px',\
bg_color='#08263a'))#画布大小为1000px*600px,背景颜色#08263a
b1.add_xaxis(x_data)
b1.add_yaxis('', data_1, gap='-100%', label_opts=opts.LabelOpts(is_show=False),
itemstyle_opts=opts.ItemStyleOpts(opacity=0.3))

b2 = Bar()
b2.add_xaxis(x_data)
b2.add_yaxis('', data_2, gap='-100%', label_opts=opts.LabelOpts(is_show=False),
itemstyle_opts=opts.ItemStyleOpts(opacity=0.3))
b1.overlap(b2)
# 不显示x轴;y轴标签颜色为#4a657a,不显示刻度线,坐标轴轴线颜色为#808080
# 使用视觉组件,关闭视觉组件映射配置组件的显示,最大值设置为50,应用数据维度为0(即通过x轴数据项映射颜色)
b1.set_global_opts(visualmap_opts=opts.VisualMapOpts(is_show=False,
range_color=['#4a657a', '#308e92', '#b1cfa5', '#f5d69f', '#f5898b',
'#ef5055'],
max_=50,
dimension=0,
type_='color'),
xaxis_opts=opts.AxisOpts(is_show=False),
yaxis_opts=opts.AxisOpts(axistick_opts=opts.AxisTickOpts(is_show=False),
axislabel_opts=opts.LabelOpts(color='#08263a'),
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(color='#808080'))))
b1.render('c.html')
# os.system('../render.html')

4、渐变堆积面积图

 要达到的效果:堆叠、渐变配色、面积图的实现

from pyecharts.commons.utils import JsCode

x_data = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
y1 = [140, 232, 101, 264, 90, 340, 250]
y2 = [120, 282, 111, 234, 220, 340, 310]
y3 = [320, 132, 201, 334, 190, 130, 220]
y4 = [220, 402, 231, 134, 190, 230, 120]
y5 = [220, 302, 181, 234, 210, 290, 150]

l = Line()
l.add_xaxis(x_data)
# is_symbol_show:是否显示symbol
# is_smooth:是否平滑曲线
l.add_yaxis('line1', y1, stack='s1', is_symbol_show=False, is_smooth=True,
linestyle_opts=opts.LineStyleOpts(color='#F3FFD6', opacity=0.5),
areastyle_opts=opts.AreaStyleOpts(color=
JsCode("new echarts.graphic.LinearGradient(0, 0, 0, 1, "
"[{offset:0,color:'#F3FFD6'},{offset:1,color:'#2E7A09'}],false)"),
opacity=0.5))

l.add_yaxis('line2', y2, stack='s1', is_symbol_show=False, is_smooth=True,
linestyle_opts=opts.LineStyleOpts(color='#D3DDF9', opacity=0.5),
areastyle_opts=opts.AreaStyleOpts(color=
JsCode("new echarts.graphic.LinearGradient(0, 0, 0, 1, "
"[{offset:0,color:'#D3FDD9'},{offset:1,color:'#2E7A09'}],false)"),
opacity=0.5))

l.add_yaxis('line3', y3, stack='s1', is_symbol_show=False, is_smooth=True,
linestyle_opts=opts.LineStyleOpts(color='#FFFCCF', opacity=0.5),
areastyle_opts=opts.AreaStyleOpts(color=
JsCode("new echarts.graphic.LinearGradient(0, 0, 0, 1, "
"[{offset:0,color:'#FFFCCF'},{offset:1,color:'#2E7A09'}],false)"),
opacity=0.5))

l.add_yaxis('line4', y4, stack='s1', is_symbol_show=False, is_smooth=True,
linestyle_opts=opts.LineStyleOpts(color='#D3E9FF', opacity=0.5),
areastyle_opts=opts.AreaStyleOpts(color=
JsCode("new echarts.graphic.LinearGradient(0, 0, 0, 1, "
"[{offset:0,color:'#D3E9FF'},{offset:1,color:'#2E7A09'}],false)"),
opacity=0.5))

l.set_global_opts(title_opts=opts.TitleOpts(title='渐变堆积面积图'),
xaxis_opts=opts.AxisOpts(boundary_gap=False))
l.render('d.html')
# os.system('../render.html')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1007506.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】拷贝构造函数调用时机 ② ( 对象值作为函数参数 | 对象值作为函数返回值 )

文章目录 一、拷贝构造函数概念二、对象值作为函数参数1、拷贝构造函数调用情况说明2、代码示例 - 对象值作为函数参数 三、对象值作为函数返回值1、拷贝构造函数调用情况说明2、代码示例 - 对象值作为函数返回值 博客总结 : " 拷贝构造函数 " 又称为 " 赋值构…

MySQL之分布式事务

写在前面 当数据库进行了分库分表 之后为了保证数据的一致性。不可变的就需要引入跨数据的事务解决方案,这种解决方案我们叫做分布式事务。本文就一起来看下分布式事务相关的内容。 在8.0 版本上学习。 1:实战 为了能够更好的理解理论知识,…

基于SSM的中小型企业财务管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

C++项目实战——基于多设计模式下的同步异步日志系统-②-前置知识补充-不定参函数

文章目录 专栏导读不定参函数C风格不定参函数不定参宏函数 专栏导读 🌸作者简介:花想云 ,在读本科生一枚,C/C领域新星创作者,新星计划导师,阿里云专家博主,CSDN内容合伙人…致力于 C/C、Linux 学…

数据分析三剑客之Matplotlib

0.Matplotlib绘图和可视化 1.简介 我的前面两篇文章介绍了 Nimpy ,Pandas 。今天来介绍一下Matplotlib。 简单来说,Matplotlib 是 Python 的一个绘图库。它包含了大量的工具,你可以使用这些工具创建各种图形,包括简单的散点图&…

Java多线程并发面试题

文章目录 Java并发基础并行和并发有什么区别?说说什么是进程和线程?Java线程创建方式?Runnable和Callable接口的区别?为什么调用start()方法时会执行run()方法,不直接调用run()方法?sleep()和wait()的区别&…

预约陪诊就诊小程序源码多城市开发版

陪诊小程序多城市版开发 小程序支持多城市开通,支持创建陪诊团队以及提成奖励设置,可以定义多种服务类型,订单流程简单明了,支持陪诊师手机端订单处理,家政类目可以轻松过审。 小程序市场前景: 人口老龄化…

强大:dynamsoft-barcode-reader-dotnet-9.6.30 Crack

dynamsoft-barcode-reader-dotnet 具有灵活 API 的强大条码扫描器 SDK 无论它是扭曲的、黑暗的、遥远的、模糊的、批量的还是移动的,我们都可以扫描它。速度快 条码扫描速度每分钟500 业界最快的扫描解码,可应用于不同场景: 多个条形码/二维…

【VS2022】调试

F9 创建或取消断点 ctrlF9 禁用断点 F5 开始调试(到断点处停下来) F10 逐过程(不进入函数) F11 逐语句 F5、F10、F11都可以直接进入调试 【调试】->【窗口】->【监视】,输入变量就可以观察到变量的值。 …

C语言数组和指针笔试题(二)(一定要看)

目录 字符数组二例题1例题2例题3例题4例题5例题6例题7总结 字符数组三例题1例题2例题3例题4例题5例题6例题7 字符数组二 char arr[] {a,b,c,d,e,f} 1:printf("%d\n", strlen(arr)); 2:printf("%d\n", strlen(arr0)); 3:printf("%d\n", strlen(…

Python小项目之Tkinter应用】随机点名/抽奖工具大优化:新增查看历史记录窗口!语音播报功能!修复预览文件按钮等之前版本的bug!

文章目录 前言一、实现思路二、关键代码查看历史记录按钮语音播报按钮三、完整代码总结前言 老生常谈,先看效果:(订阅专栏可获取完整代码) 初始状态下,我们为除了【设置】外的按钮添加弹窗,提示用户在使用工具之前要先【设置】。在设置界面,我们主要修改了【预览文件】…

每日一题 2596. 检查骑士巡视方案

难度:中等 很简单,从第 0 步开始模拟即可,唯一sb的就是测试用例中如果(0,0)处不为0的话就直接false,而不是去找0在哪 我的代码: class Solution:def checkValidGrid(self, grid: L…

2000-2021年上市公司全要素生产率数据OP法(含原始数据+计算代码+结果)

2000-2021年上市公司全要素生产率数据OP法(含原始数据计算代码结果) 1、时间:2000-2021年 2、指标:股票代码、年份、证券代码、固定资产净额、营业总收入、营业收入、营业成本、销售费用、管理费用、财务费用、支付给职工以及为…

防火墙 (五十四)

目录 前言 一、防火墙作用 二、防火墙分类 三、防火墙性能 四、硬件防火墙 五、软件防火墙 5.1 iptables 六、iptables应用 前言 本文就简单的介绍了防火墙的基础内容和一些简单案例的操作。 提示:以下是本篇文章正文内容,下面案例可供参考 一、防火墙…

jmeter线程组 bzm - Concurrency Thread Group 阶梯式压测

简介 bzm - Concurrency Thread Group 不是JMeter的官方插件,而是一种由Blazemeter提供的高级线程组插件,它提供了更灵活的并发性能测试设置。它可以在不同的时间内并发执行不同数量的线程,模拟不同的负载场景。 插件下载地址(jme…

信创办公–基于WPS的EXCEL最佳实践系列 (通过函数实现灵活限制)

信创办公–基于WPS的EXCEL最佳实践系列 (通过函数实现灵活限制) 目录 应用背景操作步骤1、sum函数的应用2、and函数的应用3、日期相关函数的应用4、eomonth函数的应用 应用背景 在Excel表格中,我们经常遇到需要大量计算或需要特殊处理的数据…

安达发|家具制造业APS高级计划与排程解决方案

在当今竞争激烈的市场环境下,家具制造业面临着诸多挑战,如原材料价格波动、人工成本上升、市场需求不确定性等。为了降低成本、提高生产效率和满足客户需求,家具制造企业需要寻求有效的计划与排程解决方案。本文将介绍一种基于先进生产计划系…

基于SSM的彩妆小样售卖商城

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Cpp/Qtday060913cpp基础

目录 将栈类实现成模板类 代码 效果 将队列类实现成模板类 代码 效果 思维导图 将栈类实现成模板类 代码 #include <iostream>using namespace std;template<typename T> class Stack { private:T data[128];int top; public:Stack();//Stack(T unit);~St…

比亚迪海洋家族再添新成员,合资车企又该绷不住了

燃油搅局者比亚迪最近又又又上新车啦&#xff0c;这次带来的是海洋家族中大型插电混动轿车—海豹 DM-i。 啥叫插电混动&#xff1f;简单来说同时搭载了汽油发动机、可外接电源充电的电池和电机&#xff1b; 有电时用电驱动电机做工&#xff0c;没电时用油驱动发动机做工&#…