Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
檀越@新空间
python-demo
提交
068380c1
P
python-demo
项目概览
檀越@新空间
/
python-demo
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
python-demo
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
068380c1
编写于
12月 16, 2023
作者:
檀越@新空间
🐭
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
整理
上级
3bce7c79
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
83 addition
and
0 deletion
+83
-0
09_可视化案例/12_测试颜色.py
09_可视化案例/12_测试颜色.py
+83
-0
09_可视化案例/2023年11月11-2023年12月15每天CSDN抢到红包累计排名前8用户.html
09_可视化案例/2023年11月11-2023年12月15每天CSDN抢到红包累计排名前8用户.html
+0
-0
未找到文件。
09_可视化案例/12_测试颜色.py
0 → 100644
浏览文件 @
068380c1
"""
演示第三个图表:GDP动态柱状图开发
"""
from
pyecharts.charts
import
Bar
,
Timeline
from
pyecharts.options
import
*
from
pyecharts.globals
import
ThemeType
from
pyecharts
import
options
as
opts
# 读取数据
f
=
open
(
"/Users/qinyingjie/Documents/python-workspace/python-demo/data/动态柱状图数据/csdn.csv"
,
"r"
,
encoding
=
"UTF-8"
)
data_lines
=
f
.
readlines
()
# 关闭文件
f
.
close
()
# 删除第一条数据
data_lines
.
pop
(
0
)
# 将数据转换为字典存储,格式为:
# { 年份: [ [国家, gdp], [国家,gdp], ...... ], 年份: [ [国家, gdp], [国家,gdp], ...... ], ...... }
# { 1960: [ [美国, 123], [中国,321], ...... ], 1961: [ [美国, 123], [中国,321], ...... ], ...... }
# 先定义一个字典对象
data_dict
=
{}
bar_colors
=
[
'#FF0000'
,
'#00FF00'
,
'#0000FF'
,
'#FFFF00'
,
'#00FFFF'
,
'#FF00FF'
,
'#C0C0C0'
,
'#800080'
]
for
line
in
data_lines
:
year
=
(
line
.
split
(
","
)[
0
])
# 日期
country
=
line
.
split
(
","
)[
1
]
# 昵称
gdp
=
float
(
line
.
split
(
","
)[
2
])
# 红包数据
# 如何判断字典里面有没有指定的key呢?
try
:
data_dict
[
year
].
append
([
country
,
gdp
])
except
KeyError
:
data_dict
[
year
]
=
[]
data_dict
[
year
].
append
([
country
,
gdp
])
# print(data_dict[1960])
# 创建时间线对象
timeline
=
Timeline
({
"theme"
:
ThemeType
.
LIGHT
})
# 排序年份
sorted_year_list
=
sorted
(
data_dict
.
keys
())
for
year
in
sorted_year_list
:
data_dict
[
year
].
sort
(
key
=
lambda
element
:
element
[
1
],
reverse
=
True
)
# 取出本年份前8名的国家
year_data
=
data_dict
[
year
][
0
:
8
]
x_data
=
[]
y_data
=
[]
for
i
,
country_gdp
in
enumerate
(
year_data
):
x_data
.
append
(
country_gdp
[
0
])
# x轴添加国家
y_data
.
append
(
country_gdp
[
1
])
# y轴添加gdp数据
# 构建柱状图
bar
=
Bar
()
x_data
.
reverse
()
y_data
.
reverse
()
# bar.add_xaxis(x_data)
# for i, (country, gdp,color) in enumerate(zip(x_data, y_data,bar_color_list)):
# bar.add_yaxis(
# series_name=country,
# yaxis_data=[gdp],
# label_opts=opts.LabelOpts(position="right", color=bar_color_list[i]),
# )
bar
.
add_xaxis
(
x_data
)
bar
.
add_yaxis
(
"红包数据"
,
y_data
,
label_opts
=
LabelOpts
(
position
=
"right"
))
# bar.add_yaxis("红包数据", y_data, label_opts=LabelOpts(position="right"), itemstyle_opts=ItemStyleOpts(color=bar_color_list))
# 反转x轴和y轴
bar
.
reversal_axis
()
# 设置每一天的图表的标题
bar
.
set_global_opts
(
title_opts
=
TitleOpts
(
title
=
f
"
{
year
}
-CSDN抢到红包累计排名"
)
)
timeline
.
add
(
bar
,
str
(
year
))
# for循环每一年的数据,基于每一年的数据,创建每一年的bar对象
# 在for中,将每一年的bar对象添加到时间线中
# 设置时间线自动播放
timeline
.
add_schema
(
play_interval
=
2000
,
is_timeline_show
=
True
,
is_auto_play
=
True
,
is_loop_play
=
False
)
# 绘图
timeline
.
render
(
"2023年11月11-2023年12月15每天CSDN抢到红包累计排名前8用户.html"
)
2023年11月11-2023年12月15每天CSDN抢到红包累计排名前8用户.html
→
09_可视化案例/
2023年11月11-2023年12月15每天CSDN抢到红包累计排名前8用户.html
浏览文件 @
068380c1
文件已移动
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录