目录
考试要求:
开卷机试题:提前准备
一、展示出gdp 四个地方(考试给)随时间变化的效果(柱状图、饼图、考试决定)。
可选方案:(动态2+静态1):
timeline轮播年份(柱状图或者饼图)、(动态)(选这个)
streamlit控件年份+图表、(静态)(不选这个,太浪费时间还不能用notebook)
线图+zoom滑块在左侧, logY效果 (动态)(选这个)
二、Metabase制作一个面板包含两个图表:
一个用问题(线图或需要的饼图),
一个用SQL(饼图或柱状图)
第一题至少准备两种方案,ABC卷会减少一种方案选择(选timeline与zoom,如果老师减少的方案是老师决定的,那可能只能迫不得已的选择streamlit)
考试准备:
可以选择的风格:(防止重复请选择其他风格替换掉文中风格,文中使用的是15. PURPLE_PASSION = 'purple-passion' #紫色激情)
BUILTIN_THEMES = ['light', 'dark', 'white']
|
| CHALK = 'chalk' #粉笔风
|
| DARK = 'dark' #暗黑风
|
| ESSOS = 'essos' #厄索斯大陆
|
| INFOGRAPHIC = 'infographic' #信息图
|
| LIGHT = 'light' #明亮风格
|
| MACARONS = 'macarons' #马卡龙
|
| PURPLE_PASSION = 'purple-passion' #紫色激情
|
| ROMA = 'roma' #石榴
|
| ROMANTIC = 'romantic' #浪漫风
|
| SHINE = 'shine' #闪耀风
|
| VINTAGE = 'vintage' #复古风
|
| WALDEN = 'walden' #瓦尔登湖
|
| WESTEROS = 'westeros' #维斯特洛大陆
|
| WHITE = 'white' #洁白风
|
| WONDERLAND = 'wonderland' #仙境
一、Pyecharts + Streamlit
# step1: 获取数据
# 北京 上海 江苏 广东 2010-2013 4年 gdp数据
years = [i for i in range(2010, 2013+1)]
data = [
[14113.58, 16251.93, 17879.4, 19800.81],
[17165.98, 19195.69, 20181.72, 21818.15],
[41425.48, 49110.27, 54058.22, 59753.37],
[46013.06, 53210.28, 57067.92, 62474.79],
]
bj = data[0]
sh = data[1]
js = data[2]
gd = data[3]
1)timeline轮播年份
柱状图:
# step2: 绘图
from pyecharts import options as opts
from pyecharts.charts import Bar, Timeline
from pyecharts.globals import ThemeType
from pyecharts.commons.utils import JsCode
# 三阶
tl = Timeline(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))
for i in range(3+1):
year = 2010 + i
cost = [bj[i], sh[i], js[i], gd[i]]
bar = (
Bar(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))
.add_xaxis(use_pro)
.add_yaxis("gdp",cost, category_gap="60%")
.set_global_opts(title_opts=opts.TitleOpts(title=""))
.set_series_opts(
datazoom_opts=[opts.DataZoomOpts()],
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="平均值"),
]
),
)
)
tl.add(bar, "{}年".format(year))
tl.render_notebook()
结果展示:
饼图:
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts.charts import Pie
from pyecharts.faker import Faker
tl = Timeline(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))
for i in range(4):
year = 2010 + i
# 转变成饼图需要的数据格式【[str, int], [str,int]...】
zie = [
['北京', bj[i]],
['上海', sh[i]],
['江苏', js[i]],
['广东', gd[i]]
]
pie = (
# Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
Pie(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))
.add(
"",
zie,
radius=["30%", "75%"],
rosetype="radius",
label_opts=opts.LabelOpts(is_show=True),
)
.set_global_opts(title_opts=opts.TitleOpts(title="Pie-中国大陆电影评分占比"))
)
tl.add(pie, "{}年".format(year))
tl.render_notebook()
结果展示:
2)streamlit控件年份+图表(柱状与饼状)
(不选择,随便搞搞)看他的
数数据可视化实战案例(timeline轮播图,streamlit 控件年份 metabase可视化使用教程)2.0_南师大蒜阿熏呀的博客-CSDN博客
3)线图+zoom滑块在左侧, logY效果
(logY-我们平常的网页logY都在右边,对就是你天天滑来滑去那个)
# step2: 绘图
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
from pyecharts.charts import Line
from pyecharts import options as opts
line = (
Line(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))
.add_xaxis(years)
.add_yaxis("北京",bj)
.add_yaxis("上海",sh)
.add_yaxis("江苏",js)
.add_yaxis("广东",gd)
.set_global_opts(
datazoom_opts=[opts.DataZoomOpts(orient="vertical")]
)
.set_series_opts(
label_opts=opts.LabelOpts(is_show=True)
)
)
line.render_notebook()
结果展示: