前言

在b站学习python时,做动态GDP柱状图绘制时,弹幕有人问如何将中国的柱状颜色设置的与其他颜色不同,根据视频中的代码没有办法动态设置中国颜色,搜索了一些文章后,在作者:jayvee_ 文章: pyecharts如何给柱形图的每个柱子设置不同颜色的方法基础上修改成功实现。

方法

利用pyecharts的JSCode工具,运行js代码来实现。思路如下:

对象结构

name值是我们需要的"中国",value值是GDP数据,可能存在相同的情况,所以采用name判断。利用pyecharts的JsCode运行以下代码

function (params) {if (params.name==('中国')) {//红色return '#FF0000';}else return '#37A2DA'; //蓝色

具体代码如下:

from pyecharts.charts import Bar,Timeline
from pyecharts.options import *
from pyecharts.globals import *
from pyecharts.commons.utils import JsCode
# 读取数据
f = open("E:\PC_SRC\Desktop\python-study\可视化案例数据\动态柱状图数据\\1960-2019全球GDP数据.csv","r",encoding="UTF-8")
data = f.readlines()
f.close()
data.pop(0)
data_dic = {}
for i_data in data:li_data = i_data.split(",")y = int(li_data[0])c = li_data[1]f = float(li_data[2])cf_dic = [c,f]if(not y in data_dic):data_dic[y] = [cf_dic]else:data_dic[y].append(cf_dic)# 创建时间线对象
timeline = Timeline({"theme": ThemeType.LIGHT})
# 排序年份
yearlist = sorted(data_dic.keys())
for year in yearlist:year_data = dict(sorted(data_dic[year] , key=lambda e: e[1],reverse=True))# 取前8名国家数据x_data = list(year_data.keys())[0:8]y_data = list(map(lambda x:round(x/100000000,2),list(year_data.values())))[0:8]# 逆转一下x_data.reverse()y_data.reverse()# 构建柱状图bar = Bar()bar.add_xaxis(x_data)# 此处为修改颜色的js代码,判断params的名字是否为中国color_function = "function (params) {if (params.name==('中国')) {return '#FF0000';}else return '#37A2DA'}"bar.add_yaxis("GDP(亿)",y_data,label_opts=LabelOpts(position="right"),itemstyle_opts=ItemStyleOpts(color=JsCode(color_function)))bar.reversal_axis()bar.set_global_opts(title_opts=TitleOpts(title=f"{year}全球前8GDP数据"))timeline.add(bar, str(year))# 时间线自动播放
timeline.add_schema(play_interval=1000,is_auto_play=True,is_loop_play=False,is_timeline_show=True
)
# 绘图
timeline.render("1960-2019全球GDP前8国家.html")

绘制效果

避坑

如果js代码中不加else,其它柱子就会变透明,如果else返回的颜色错误,就会出现其他国家也会变红的bug,如图

总结

还在学习中,我觉得这种方法可能比较麻烦,应该有更方便的方法来实现,希望会的大佬在评论区补充一下。

pyecharts柱状图颜色设置相关推荐

  1. ECharts柱状图颜色设置

    option = {xAxis : [{type : 'category',data : ['Mon', 'Tue', 'Wed'],axisTick: {alignWithLabel: true}} ...

  2. qt对plot柱状图颜色设置

    当使用qwtplotbarchart来使用柱状图时.可以通过下面代码来设置柱状图的颜色 QwtPlotBarChart  *barChart = new QwtPlotBarChart("B ...

  3. python数据分析——pyecharts柱状图全解(小白必看)

    击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 伯仲之间见伊吕,指挥若定失萧曹. 一 ...

  4. python中数据可视化柱状图_python数据可视化,pyecharts柱状图绘制

    一.pyecharts简介 pyecharts主要基于Web浏览器进行显示,绘制的图形比较多,包括折线图.柱状图.饼图.漏斗图 地图和极坐标图等.使用pyecharts绘图代码量很少,但绘制的图形比较 ...

  5. python数据分析——pyecharts柱状图全解

    最近学了一点python关于pyecharts的内容,发现一篇内容挺全的文章,转一下. 一. 安装 pip install pyecharts 二.pyecharts柱状图/条形图全解 1.基本柱状图 ...

  6. echarts柱状图颜色渐变样式

    option: {title: {text: ''},color: [{type: 'linear',x: 0,y: 0,x2: 0,y2: 1,colorStops: [{ offset: 0, c ...

  7. Echarts字体和线条颜色设置操作笔记

    这篇文章主要讲述Echarts设置字体和线条的颜色相关操作笔记,希望文章对你有所帮助,主要是自己的在线笔记吧.我在前面先放各种修改前后图片颜色的对照,后面再详细介绍代码.这样更方便阅读及读者知道,是否 ...

  8. Echart颜色设置

    最近在做的项目用到Echarts,由于客户对图表颜色的要求,找了很多资料,终于对柱状图,饼图,仪表盘图的颜色设置有了一个了解,供大家参考学习. Echarts配置项手册:http://echarts. ...

  9. Python读取excel表格数据并绘制成柱状图 | 数据排序、柱状图颜色、标签乱码等问题通通能够解决!

    hello大家好, 我是你们的可爱丸, 我们又见面啦! python的功能十分强大, 它不仅可以用来做爬虫, 还可以用来做数据分析哦! 那么今天我就带着大家 用python 分析表格数据,并绘制成柱状 ...

最新文章

  1. 改变图像,运用match方法判断
  2. java设计模式---三种工厂模式
  3. SharedPreferences的使用
  4. Excel一对多查找
  5. SCI录用的最后一步——答复审稿人的策略和答复信的写作技巧
  6. python turtle库画椭圆_如何用Python画一只肥肥的柯基狗狗——turtle库绘制椭圆与弧线实践...
  7. 学php应该怎么学习数学,数学是怎样学好的 零基础怎么自学数学
  8. CSS 块格式化上下文 BFC
  9. ARM公司的Cortex-M0概况介绍
  10. 《Python硬件编程实战》——1.3 Python的特点
  11. 如何避免 obj1 + obj2 = obj3 错误?
  12. 基于php+MySQL电脑外设商城网站 毕业设计-附源码271538
  13. Linux0.11系列开篇
  14. Windows聚焦壁纸
  15. c++一本通在线测评网站 1002:输出第二个整数
  16. css重复,CSS小课堂之可重复渐变
  17. 计算机制造商logo,如何更改系统oem制造商logo等信息
  18. Mysql的分组函数
  19. 【下载所有XKCD漫画】 详细解析
  20. 【软件工程】敏捷宣言

热门文章

  1. 一键分享功能ShareSDK
  2. 后端 绘制有向无环图(DAG图)
  3. 商业软件联盟(BSA)秘密调查报告曝光
  4. BUSINESS SKYPE 不能登录
  5. HPE:Superdome:X 关键业务服务器
  6. Unity实战篇 | 接入 声网SDK 实现 音频通话 —— 自己动手做一个 语音聊天房
  7. Brainstorm + Fieldtrip IEEG定位及分区教程
  8. 关于安卓接入B站弹幕控件
  9. 宾夕法尼亚大学计算机硕士录取,[转载]宾夕法尼亚大学计算机与信息科学研究生Offer及录取要求...
  10. 思科服务器查看生成树协议,思科交换机生成树协议配置案例