目录

考试要求:

考试准备:

一、Pyecharts + Streamlit

1)timeline轮播年份

2)streamlit控件年份+图表

3)线图+zoom滑块在左侧, logY效果

二、Metabase + Sql

1) 启动

2)一个用问题(线图或需要的饼图)

3)一个用SQL(饼图或柱状图)


考试要求:

开卷机试题:提前准备


一、展示出gdp 四个地方(考试给)随时间变化的效果(柱状图、饼图、考试决定)。

可选方案:(动态2+静态1):

timeline轮播年份(柱状图或者饼图)、(动态)(选这个)

streamlit控件年份+图表、(静态)(不选这个,太浪费时间还不能用notebook)

线图+zoom滑块在左侧, logY效果 (动态)(选这个)


二、Metabase制作一个面板包含两个图表:

一个用问题(线图或需要的饼图),

一个用SQL(饼图或柱状图)


第一题至少准备两种方案,ABC卷会减少一种方案选择(选timeline与zoom,如果老师减少的方案是老师决定的,那可能只能迫不得已的选择streamlit)

考试准备:

可以选择的风格:(防止重复请选择其他风格替换掉文中风格,文中使用的是15. PURPLE_PASSION = 'purple-passion' #紫色激情)

  1. BUILTIN_THEMES = ['light', 'dark', 'white']
  2. |
  3. | CHALK = 'chalk' #粉笔风
  4. |
  5. | DARK = 'dark' #暗黑风
  6. |
  7. | ESSOS = 'essos' #厄索斯大陆
  8. |
  9. | INFOGRAPHIC = 'infographic' #信息图
  10. |
  11. | LIGHT = 'light' #明亮风格
  12. |
  13. | MACARONS = 'macarons' #马卡龙
  14. |
  15. | PURPLE_PASSION = 'purple-passion' #紫色激情
  16. |
  17. | ROMA = 'roma' #石榴
  18. |
  19. | ROMANTIC = 'romantic' #浪漫风
  20. |
  21. | SHINE = 'shine' #闪耀风
  22. |
  23. | VINTAGE = 'vintage' #复古风
  24. |
  25. | WALDEN = 'walden' #瓦尔登湖
  26. |
  27. | WESTEROS = 'westeros' #维斯特洛大陆
  28. |
  29. | WHITE = 'white' #洁白风
  30. |
  31. | 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()

 结果展示:

大数据可视化陈为期末考试 大数据可视化期末试题_大数据可视化陈为期末考试_02

2)streamlit控件年份+图表(柱状与饼状)

(不选择,随便搞搞)看他的

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()

  结果展示:

大数据可视化陈为期末考试 大数据可视化期末试题_柱状图_03

二、Metabase + Sql

1) 启动

2)一个用问题(线图或需要的饼图)

3)一个用SQL(饼图或柱状图)