数据可视化 您所在的位置:网站首页 简述创建图表的方式 数据可视化

数据可视化

2024-05-24 12:51| 来源: 网络整理| 查看: 265

第一章

1、数据可视化是从数据空间到图形空间的映射。

2、狭义的数据可视化是将数据以图表、图形、地图的方式进行呈现。

3、箱型图是一种利用数据中的5个统计量描述数据的图表。

4、matplotlib是一个主要用于绘制2D图表的Python库。

5、Anaconda提供了包管理器、环境管理器,包括诸如numpy、pandas、matplotlib、scipy等180多个科学计算包及其依赖项。

6、数据可视化是一个抽象的过程。(正确)

7、散点图可以清晰地展示数据增减的趋势、速率、规律、峰值等特征。(错误)

8、柱形图与直方图展示的效果完全相同。(错误)

9、matplotlib只能采用面向对象的方式开发程序。(错误)

10、下列选项中,关于数据可视化描述错误的是(C)。

A、 数据可视化可以简单地理解为将不易描述的事物形成可感知画面的过程

B、 数据可视化的目的是准确地、高效地、全面地传递信息

C、 数据表格是数据可视化最基础的应用

D、 数据可视化对后期数据挖掘具有深远的影响

11、关于常见图表的说法中,下列描述正确的是(C)。

A、柱形图可以反映数据增减的趋势               B、条形图是横置的直方图

C、饼图用于显示数据中各项大小与各项总和的比例 D、雷达图是一种可以展示多变量关系的图表

12、下列图表中,可以反映三个变量之间关系的是(D)。

A、 折线图    B、柱形图    C、散点图    D、气泡图

13、下列哪个可视化库可以生成Echarts 图表?(D)

A、matplotlib      B、seaborn      C、bokeh      D、pyecharts

14、下列选项中,属于数据之间逻辑关系的是(ABCD)。

A、比较   B、分布    C、构成    D、联系

15、请简述数据可视化的概念。

答案: 数据可视化旨在借助图形化的手段,将一组数据以图形的形式表示,并利用数据分析和开发工具发现其中未知信息的处理过程。

16、请列举三个常见的可视化图表及其它们的特点。

答案: 折线图是将数据标注成点,并通过直线将这些点按某种顺序连接而成的图表,它以折线的方式反映事物沿某一维度的变化趋势,能够清晰地展示数据增减的趋势、速率、规律及峰值等特征;柱形图是由一系列宽度相等、高低不齐的纵向矩形条组成的图表,它使用矩形条的高度表示数据的多少,以此反映不同分类数据之间的差异;饼图是由若干个面积大小不一、颜色不同的扇形组成的圆形图表,它使用圆表示数据的总量,组成圆的每个扇形表示数据中各项占总量的比例大小,主要用于显示数据中各项大小与各项总和的比例

17、请简述pyplot API和object-oriented API的基本用法。

答案: 当使用pyplot API绘图时,用户需要先使用“import matplotlib.pyplot as plt”语句导入pyplot模块,之后使用该模块调用绘图函数即可在当前的画布和绘图区域中绘制图表;当使用object- oriented API绘图时,用户需要先创建画布(pyplot.Figure类对象),再在该画布上创建坐标系风格的绘图区域(pyplot.Axes类对象),之后调用绘图方法创建图形,将这些创建的对象组合到一起才完成一次完整的绘图。

18.编写程序,分别采用面向对象和面向函数两种方式绘制正弦曲线和余弦曲线。

提示:利用numpy的linspace()、sin()或cos()函数生成样本数据、正弦或余弦值。

答案:

# ————面向对象的方式import numpy as np

import matplotlib.pyplot as plt

x_data = np.linspace(-np.pi, np.pi, 256, endpoint=True)

y_sin, y_cos = np.sin(x_data), np.cos(x_data)

fig = plt.figure()

ax = fig.add_subplot(111)

ax.plot(x_data, y_sin)

ax.plot(x_data, y_cos)

plt.show()

# ————面向函数的方式import numpy as np

import matplotlib.pyplot as plt

x_data = np.linspace(-np.pi, np.pi, 256, endpoint=True)

y_sin, y_cos = np.sin(x_data), np.cos(x_data)

plt.plot(x_data, y_sin)

plt.plot(x_data, y_cos)

plt.show()

第二章

19、plot()函数会返回一个包含多个Line2D类对象的列表。

20、常见的堆积图包括堆积面积图、堆积柱形图和堆积条形图。

21、pyplot绘制的直方图默认有10个矩形条。

22、pyplot只能使用errorbar()函数绘制误差棒图。 错误

23、pyplot可以使用barh()函数绘制堆积条形图。 正确

24、pyplot绘制的箱形图默认不显示异常值。 错误

25、下列函数中,可以快速绘制雷达图的是(D)。

A.bar() B.barh() C.hist() D.polar()

26、当pyplot调用barh()函数绘图时,可以通过哪个参数设置图表的刻度标签? C

A、 width B、 height C、 tick_label D、 align

27、请阅读下面一段代码:

plt.bar(x, y1, tick_label=["A", "B", "C", "D"])

plt.bar(x, y2, bottom=y1, tick_label=["A", "B", "C", "D"])

以上代码中bar()函数的bottom参数的作用是(B)。

A.将后绘制的柱形置于先绘制的柱形下方

B.将后绘制的柱形置于先绘制的柱形上方

C.将后绘制的柱形置于先绘制的柱形左方

D.将后绘制的柱形置于先绘制的柱形右方

28、下列选项中,程序运行的效果为圆环图的是。

import numpy as np

import matplotlib.pyplot as plt

data = np.array([20, 50, 10, 15, 30, 55])

pie_labels = np.array(['A', 'B', 'C', 'D', 'E', 'F'])

plt.pie(data, radius=1.5, wedgeprops={'width': 0.6},labels=pie_labels)

plt.show()

29、关于使用boxplot()函数绘制的箱形图,下列描述正确的是(C)。

A、箱形图中异常值对应的符号默认为星号

B、箱形图只能垂直摆放,无法水平摆放

C、箱形图默认显示箱体

D、箱形图默认不会显示异常值

30、已知实验中学举行了高二期中模拟考试,考试后分别计算了全体男生、女生各科的平均成绩,统计结果如表2-10所示。

表2-10  高二男生、女生各科的平均成绩

学科

平均成绩(男)

平均成绩(女)

语文

85.5

94

数学

91

82

英语

72

89.5

物理

59

62

化学

66

49

生物

55

53

按照以下要求绘制图表:

(1)绘制柱形图。柱形图的x轴为学科,y轴为平均成绩。

(2)绘制堆积柱形图。堆积柱形图的x轴为学科,y轴为平均成绩。

(1) import numpy as np

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus'] = False

labels = np.array(['语文', '数学', '英语', '物理', '化学', '生物'])

x = np.arange(0, labels.size)

y_men = np.array([85.5, 91, 72, 59, 66, 55])

y_women = np.array([94, 82, 89.5, 62, 49, 53])

bar_width = 0.35

# 绘制柱形图

plt.bar(x - bar_width /2, y_men, width=bar_width, tick_label=labels)

plt.bar(x + bar_width /2, y_women, width=bar_width, tick_label=labels)

plt.show()

(2) import numpy as np

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus'] = False

labels = np.array(['语文', '数学', '英语', '物理', '化学', '生物'])

x = np.arange(0, labels.size)

y_men = np.array([85.5, 91, 72, 59, 66, 55])

y_women = np.array([94, 82, 89.5, 62, 49, 53])

bar_width = 0.5

# 绘制柱形图

plt.bar(x, y_men, width=bar_width, tick_label=labels)

plt.bar(x, y_women, bottom=y_men, width=bar_width, tick_label=labels)

plt.show()

(1)设置y轴的标签为“平均成绩(分)”;

(2)设置x轴的刻度标签位于两组柱形中间;

(3)添加标题为“高二男生、女生的平均成绩”;

(4)添加图例;

(5)向每个柱形的顶部添加注释文本,标注平均成绩。

import numpy as np

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus'] = False

def autolabel(rects):

for rect in rects:

height = rect.get_height()

plt.text(rect.get_x() + rect.get_width() / 2, height + .5, s='{}'.format(height),

ha='center', va='bottom')

labels = np.array(['语文', '数学', '英语', '物理', '化学', '生物'])

x = np.arange(0, labels.size)

y_men = np.array([85.5, 91, 72, 59, 66, 55])

y_women = np.array([94, 82, 89.5, 62, 49, 53])

bar_width = 0.35 # 绘制柱形图

bars_men = plt.bar(x - bar_width /2, y_men, width=bar_width, label='男生')

bars_women = plt.bar(x + bar_width /2, y_women,width=bar_width, label='女生')

plt.xticks(x, labels)

plt.title('高二男生、女生的平均成绩')

plt.ylabel(' 平 均 成 绩 ( 分 )')

autolabel(bars_men)

autolabel(bars_women)

plt.legend()

plt.show()

31、拼多多作为互联网电商的一匹黑马,短短几年用户的规模已经超过3亿。2019年9月拼多多平台对所有子类目的销售额进行了统计,结果如表2-11所示。

表2-11 拼多多平台子类目的销售额子类目

子类目

销售额

童装

29665

奶粉辅食

3135.4

孕妈专区

4292.4

洗护喂养

5240.9

宝宝尿裤

5543.4

春夏新品

5633.8

童车童床

6414.5

玩具文娱

9308.1

童鞋

10353

根据表2-11的数据绘制一个反映拼多多平台子类目销售额占比情况的饼图。

import numpy as np

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus'] = False

kinds = ['童装', '奶粉辅食', '孕妈专区', '洗护喂养', '宝宝尿裤','春夏新品', '童车童床', '玩具文娱', '童鞋']

sales = np.array([29665, 3135.4, 4292.4, 5240.9, 5543.4,5633.8, 6414.5, 9308.1, 10353])

sales_total = np.sum(sales)

sales_scale = [i/sales_total for i in sales]

plt.pie(sales_scale, labels=kinds, autopct='%3.1f%%')

plt.show()

添加标题为“拼多多平台子类目的销售额”;添加图例,以两列的形式进行显示;添加表格,说明子类目的销售额。

import numpy as np

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus'] = False

kinds = ['童装', '奶粉辅食', '孕妈专区', '洗护喂养', '宝宝尿裤','春夏新品', '童车童床', '玩具文娱', '童鞋']

sales = np.array([29665, 3135.4, 4292.4, 5240.9, 5543.4, 5633.8, 6414.5, 9308.1, 10353])

sales_total = np.sum(sales)

sales_scale = [i/sales_total for i in sales]

cell_text = [29665, 3135.4, 4292.4, 5240.9, 5543.4, 5633.8, 6414.5, 9308.1, 10353]

plt.pie(sales_scale, autopct='%3.1f%%')

plt.title('拼多多平台子类目的销售额')

plt.legend(kinds, loc='upper right', bbox_to_anchor=[1.7, 1.0], ncol=2)

plt.table(cellText=[cell_text],cellLoc='center',rowLabels=['销售额(亿)'], colLabels=kinds, loc='lower center')

plt.show()

第三章

32、图表的辅助元素是指除了根据数据绘制的图形之外的元素。

33、图例是一个列举图表中各组图形标识方式的方框图。

34、指向型注释文本是通过指示箭头的注释方式对图形进行解释的文本。

35、参考线是标记坐标轴上特殊值的一条直线。

136、matplotlib自带的引擎可以自动识别数学字符串,并将该数学字符串解析成相应的数学公式。

37、matplotlib中图例一直位于图表的右上方,它的位置是不可变的。 错误

38、参考线可以为图形数据与特殊值之间的比较提供参考。 正确

39、坐标轴的标签代表图表名称,一般位于图表顶部居中的位置。 错误

40、若坐标轴没有刻度,则无法显示网格。正确

41、坐标轴的刻度范围取决于数据的最大值和最小值。正确

42、关于图表辅助元素的说法中,下列描述错误的是(B)。

A、标题一般位于图表的顶部中心,可以帮助用户理解图表要说明的内容

B、参考区域是标记坐标轴上特殊值的一条直线

C、图例由图例标识和图例项构成,可以帮助用户理解每组图表的含义

D、表格主要用于强调比较难以理解的数据

43、下列函数中,可以设置坐标轴刻度标签的是(C)。

A、xlim()        B、grid ()        C、xticks()        D、axhline()

44、当pyplot使用legend()函数添加图例时,可以通过以下哪个参数控制图例的列数?(B)

A、 loc           B、ncol           C、bbox_to_anchor          D、fancybox

45、下列选项中,可以为图表添加一条值为1.5的水平参考线的是(A)。

A、plt.axhline(y=1.5, ls='--', linewidth=1.5)

B、plt.axhline(y=1, ls='--', linewidth=1.5)

C、plt.axvline(x=1.5, ls='--', linewidth=1.5)

D、plt.axvline(x=1, ls='--', linewidth=1.5)

46、请简述指向型和无指向型注释文本的区别。

答:指向型注释文本是指通过指示箭头的注释方式对绘图区域的图形进行解释的文本,它一般使用线条连接说明点和箭头指向的注释文字;无指向型注解文本是指单纯地使用文字的注释方式对绘图区域的图形进行说明的文本。

47、请列举图表常用的辅助元素及其作用。

答:坐标轴是用于定义坐标系的一组直线或曲线;标题是图表的名称,可以迅速地让读者理解图表要说明的内容;图例是一个列举的各组图形标识方式的方框图,可以帮助用户明确每组图形代表的含 义;网格是从坐标轴刻度开始的、贯穿绘图区域的若干条线,用于作为估算图形所示值的标准;参考线是标记坐标轴上特殊值的一条直线;参考区域是标记坐标轴上特殊范围的一块区域;注释文本是对图形的一些注释和说明;表格主要用于强调比较难理解的数据。

第四章

48、matplotlib载入时会将包含全部配置项的字典赋值给变量rcParams,方便开发者采用访问字典的方式设置或获取配置项。

49、在数据可视化中,颜色通常被用于编码数据的分类或定序属性。

50、数据标记一般指代表单个数据的圆点或其它符号等,用于帮助用户强调数据的位置。

51、matplotlib中文本都是一个Text类的对象。

52、matplotlib可以使用use()函数切换图表的主题风格。

53、matplotlib中线条的类型默认是长虚线。 错误

54、matplotlib中折线图的线条默认不显示数据标记。 正确

55、任何类型的图表都可以添加数据标记。 错误

56、matplotlib支持使用多种方式表示颜色。 正确

57、matplotlib默认不支持显示中文。 正确

58、关于图表样式的说法,下列描述正确的是(A)。

A、matplotlib会读取matplotlibrc文件的配置信息以指定图表的默认样式

B、图表的样式只能通过代码的方式进行修改

C、matplotlib不能修改matplotlibrc文件的配置信息

D、matplotlibrc文件一定保存在当前工作路径下

59、下列选项中,表示的颜色不是黑色的是(D)。

A、'k' B、'#000000' C、(0.0, 0.0, 0.0) D、'b'

60、请阅读下面一段代码:

import matplotlib.pyplot as plt

plt.scatter([1, 2, 3], [3, 4, 5], s=10, marker='^')

plt.show()

A、 正方形 B、 星形 C、菱形 D、正三角形

61、下列函数中,用于切换图表主题风格的是(C)。

A、turn()B、change()C、use()D、replace()

62、下列函数中,用于填充多边形的是(A)。

A、fill()B、fill_between()C、fill_betweenx()D、 fill_betweeny()

63、请简述局部修改和全局修改图表样式的区别。

答案:局部修改的方式是指通过代码动态地修改matplotlib配置项,此方式用于程序局部定制的需 求;全局修改的方式是指直接修改matplotlibrc文件的配置项,此方式用于对程序全局定制的需求, 可以将指定的图表样式进行统一修改,无需每次在具体的程序中进行单独修改。

64、请简述fill()、fill_between()和fill_betweenx()的区别。

答案:fill()函数用于填充多边形,fill_between()或fill_betweenx()函数分别用于填充两条水平曲线或垂直曲线之间的区域。

65、已知2018年、2019年物流行业的快递业务量情况如表4-7所示。

表4-7 2018、2019年物流行业的快递业务量           单位:亿件

月份

2018年业务

2019年业务

1月

39

45

2月

20

28

3月

40

48

4月

38

49

5月

42

50

6月

43

51

7月

41

50

8月

41

50

9月

45

51

10月

48

52

11月

52

70

12月

50

65

根据表4-7的数据绘制图表,具体要求如下:

绘制反映2018年、2019年快递业务量趋势的折线图;折线图的x轴为月份;y轴为业务量,y轴的标签为“业务量(亿件)”;代表2018年的折线样式:颜色为“#8B0000”、标记为正三角形、线型为长虚线,线宽为1.5;代表2019年的折线样式:颜色为“#006374”、标记为长菱形、线型为实线,线宽为1.5;折线图的主题风格切换为“fivethirtyeight”。

答案:

import numpy as np

import matplotlib.style as ms

import matplotlib.pyplot as plt

plt.rcParams["font.sans-serif"] = ["SimHei"]

plt.rcParams["axes.unicode_minus"] = False

# 快递业务量

express_2018 = np.array([39, 20, 40, 38, 42, 43, 41, 41, 45, 48, 52, 50])

express_2019 = np.array([45, 28, 48, 49, 50, 51, 50, 50, 51, 52, 70, 65])

date_x = np.arange(1, 13)

fig = plt.figure()

ax = fig.add_subplot(111)

# 第1条折线

ax.plot(date_x, express_2018, color='#8B0000', marker='^', linestyle='--', linewidth=1.5, label='2018年')

# 第2条折线

ax.plot(date_x, express_2019, color='#006374', marker='d',linewidth=1.5, label='2019年') ax.set_ylabel('业务量(亿件)') ax.legend() ms.use('fivethirtyeight')

plt.show()

66、绘制一个包含正弦曲线和余弦曲线的图表,具体要求如下:

正弦曲线的样式:红色、线宽为1.0;余弦曲线的样式:蓝色、线宽为1.0,透明度为0.5;

(3) x轴的刻度标签为“-π”、 “-π/2”、 “0”、 “π/2”、 “-π”;

在x=1、y=np.cos(1)的位置添加指向型注释文本;填充|x| 0.5, color='green', alpha=0.25)

# 加注释文本

plt.annotate('cos(1)',xy=(1,np.cos(1)),xycoords='data',xytext=(10,30),textcoords='offset points', arrowprops=dict(arrowstyle='->'))

plt.show()

第五章

67、matplotlib可以规划整个画布等分成m*n(行*列)的矩阵区域。

68、matplotlib使用subplots()绘制多个子图时可以通过sharex参数控制是否共享x轴。

69、约束布局是通过一系列限制来确定画布中元素的位置的方式。

70、matplotlib的gridspec是专门指定画布中子图位置的模块。

71、 subplot(223)与subplot(2, 2, 3)是等价的。 正确

72、matplotlib使用subplot()可以一次性绘制多个子图。 错误

73、同一画布的多个子图可以共享同方向的坐标轴。 正确

74、matplotlib默认未启用约束布局。 正确

75、紧密布局适用于图表的所有元素,可以调整所有元素的位置。 错误

76、下列函数中,可以一次性绘制多个子图的是 D

A、subplot()  B、subplot2grid()  C、twinx()  D、subplots()

77、请阅读下面一段程序:

%matplotlib auto

import matplotlib.pyplot as plt

ax_one = plt.subplot(223)

ax_one.plot([1, 2, 3, 4, 5])

plt.show() 运行程序,效果如右图所示

78、请阅读下面一段程序:

import matplotlib.pyplot as plt

plt.subplots(2, 2, sharex=  )

plt.show()

以上程序的横线处填充’col’,可以共享每列子图的坐标轴

79、下列选项中,可以实现紧密布局的是C

A、twinx()  B、constrained_layout()  C、tight_layout()  D、GridSpec()

80、当matplotlib使用GridSpec()自定义布局结构时,可以通过(D)参数控制子图之间的间隙。

A、nrows  B、ncols  C、figure  D、wspace

81、请简述subplot()、subplots()和subplot2grid()函数的区别。

答案:pyplot使用subplot()函数可以在规划好的某个区域中绘制单个子图;pyplot使用subplots() 函数可以在规划好的全部区域中绘制多个子图;pyplot使用subplot2grid()函数可以将整个画布规划成非等分布局的区域,之后在选中的某个区域中绘制单个子图。

82、什么是约束布局?

答案:约束布局是指通过一系列限制来确定画布中元素的位置的方式,它预先会确定一个元素的绝对定位,之后以该元素的为基点将其它元素进行绝对定位,从而灵活地定位和调整元素的位置。217、按照如下要求绘制图表:

(1)画布被规划为2*3的矩阵区域;

(2)在编号为3的区域中绘制包含一条正弦曲线的子图;

(3)在编号为6的区域中绘制包含一条余弦曲线的子图;

(4)共享两个子图的x轴。

import numpy as np

import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)

sin, cos = np.sin(x), np.cos(x)

ax_one = plt.subplot(233)

ax_one.plot(x, sin)

ax_two = plt.subplot(236, sharex=ax_one)

ax_two.plot(x, cos)

plt.show()

83、按照自定义的布局结构绘制子图,具体如图5-20。

图5-20 自定义的布局结构

答案:

import matplotlib.pyplot as plt

fig = plt.figure(constrained_layout=True)

gs = fig.add_gridspec(3, 4)

fig.add_subplot(gs[0, :])

fig.add_subplot(gs[1, :-2])

fig.add_subplot(gs[1, -2:])

fig.add_subplot(gs[2, 0])

fig.add_subplot(gs[2, 1:])

plt.show()

第六章

84、坐标轴包括轴脊、刻度,其中刻度线可以细分为主刻度线和次刻度线。

85、坐标轴一般将轴脊作为刻度的载体。

86、pyplot可以使用axis()函数显示或隐藏的全部轴脊。

87、matplotlib的坐标轴默认隐藏次刻度线。正确

88、matplotlib可以使用Formatter的子类调整刻度的位置。错误

89、matplotlib中刻度线的方向只能朝外。 错误

90、下列选项中,可以获取坐标轴全部轴脊的是(C)。

A、xaxisB、yaxisC、spinesD、ticks

91、下列方法中,用于设置主刻度标签格式的是( )。

A、set_major_locator()B、set_minor_locator()

C、set_major_formatter()D、set_minor_formatter()

92、请阅读下面一段代码:

line_loc = LinearLocator(numticks=3) ax.xaxis.set_major_locator(line_loc) 下列最有可能是x轴的效果

93、下列选项中,可以隐藏坐标轴上轴脊的是(A)。

A、ax.spines['top'].set_color('none')    B、ax.spines['right'].set_color('none')

C、ax.spines['bottom'].set_color('none')   D、ax.spines['left'].set_color('none')

94、下列方法中,用于移动轴脊位置的是(B)。

A、set_color()B、set_position()

C、set_ticks_position()D、set_yticklabels()

95、请简述刻度定位器和格式器的作用。

答案:Locator是刻度定位器的基类,它派生了很多子类,可以自动地调整刻度的间隔、选择刻度的位置;Formatter是刻度格式器的基类, 它派生了很多子类,可以自动地调整刻度标签的格式。

96.已知某股票一周内收盘价如表6-7所示。

表6-7 某股票一周的收盘价

周日期

收盘价

周一

44.98

周二

45.02

周三

44.32

周四

41.02

周五

42.08

周六

--

周日

--

根据表6-7的数据绘制一个折线图,具体要求如下:

在距画布顶部0.2、左侧0.2的位置上添加一个宽度为0.5、高度为0.5的绘图区域;x轴的刻度标签为周日期;刻度线样式调整:方向朝内、宽度为2;隐藏坐标轴的上轴脊、右轴脊。

答案:

import numpy as np

import matplotlib.pyplot as plt

from calendar import month_name, day_name

from matplotlib.ticker import FormatStrFormatter

plt.rcParams["font.sans-serif"] = ["SimHei"]

plt.rcParams["axes.unicode_minus"] = False

x_data = np.arange(1,8,1)

y_data = [44.98, 45.02, 44.32, 41.05, 42.08, 42.08, 42.08]

fig = plt.figure()

ax = fig.add_axes((0.2, 0.2, 0.5, 0.5))

ax.plot(x_data, y_data, '-o', ms=8)

ax.yaxis.set_major_formatter(FormatStrFormatter(r'$\yen%1.1f$'))

plt.xticks(x_data, day_name[0:7], rotation=20)

plt.tick_params(direction='in', width=2)

# 隐藏上轴脊和右轴脊

ax.spines['top'].set_color('none')

ax.spines['right'].set_color('none')

plt.show()

第七章

97、mplot3d是matplotlib中专门绘制3D图表的工具包。

98、FuncAnimation通过重复地调用同一函数来制作动画。

99、basemap工具包中默认使用的地图投影是cyl。

100、basemap工具包中包含一个表示基础地图背景的Basemap类。

101、matplotlib只能绘制2D图表。 错误

102、FuncAnimation是一个动画基类。 错误

103、创建Basemap类的对象时可以指定地图投影的类型和要处理的地球区域。 正确

104、下列选项中,用于绘制统计地图的是(B)。

A、mplot3d   B、basemap   C、animation   D、ticker

105、下列方法中,用于绘制3D曲面图的是(C)。

A、plot()B、plot_wireframe()C、plot_surface()D、plot_trisurf()

106、关于animation模块的说法中,下列描述错误的是(D)。

A、Animation类针对不同的行为派生了不同的子类

B、FuncAnimation类表示基于重复调用一个函数的动画

C、ArtistAnimation类表示基于一组Artist对象的动画

D、ArtistAnimation是一个动画基类

107、请阅读下面一段代码:

map = Basemap(projection='stere', lat_0=90, lon_0=-105, llcrnrlat=23.41, urcrnrlat=45.44, llcrnrlon=-118.67, urcrnrlon=-64.52,rsphere=6371200., resolution='l', area_thresh=10000) 以上代码中地图背景使用的投影类型为(B)。

A、Cylindrical Equal Area                                    B、Stereographic

C、Cylindrical Equidistant                                   D、South-Polar Stereographic

108、下列方法中,用于绘制地图纬度线的是(A)。

A、drawparallels()                   B、drawmeridians()

C、drawcoastlines()                  D、drawrivers()

109、请简述FuncAnimation和ArtistAnimation类的区别。

答案:FuncAnimation是基于函数的动画类,它通过重复地调用同一函数来制作动画; ArtistAnimation是基于一组Artist对象的动画类,它通过一帧一帧的数据制作动画。

110、请简述basemap的基本用法。

答案:(1)创建Basemap类的对象,指定地图投影的类型和要处理的地球区域;(2)通过Basemap类的方法绘制地图背景;(3)通过Basemap类的方法在地图上绘制数据。

111、请简述pyecharts的优势。

答案:(1)简洁的API令开发者使用起来如丝滑般流畅,且支持链式调用;(2)程序可运行到主流的Jupyter Notebook或JupyterLab工具;(3)程序可以轻松地集成至 Flask、Sanic、Django 等主流的Web框架中;(4)灵活的配置项可以轻松地搭配出精美的图表;(5)详细的文档和示例可以帮助开发者快速地上手项目;(6)多达400多个地图文件、原生百度地图为地理数据可视化提供强有力的支撑。

112、请简述pyecharts绘制图表的基本流程。

答案:(1)创建与图表对应类的对象;(2)添加图表数据;(3)添加图表系列配置项;(4)添加图表全局配置项;(5)渲染图表。

113、绘制一个具有动画效果的图表,具体要求如下:

绘制一条正弦曲线;绘制一个红色圆点,该圆点最初位于正弦曲线的左端;制作一个圆点沿曲线运动的动画,并时刻显示圆点的坐标位置。部分效果如图7-8所示。

图7-8 沿曲线运动的圆点

答案:

import numpy as np

import matplotlib.pyplot as plt

import matplotlib.animation as animation # 指定渲染环境

%matplotlib auto

def update_points(num): '''更新数据点'''

point_ani.set_data(x[num], y[num])

text_pt.set_text("x=%.3f, y=%.3f"%(x[num], y[num]))

return point_ani, text_pt

x = np.linspace(0, 2*np.pi, 100)

y = np.sin(x)

fig = plt.figure(tight_layout=True)

plt.plot(x, y)

point_ani, = plt.plot(x[0], y[0], "ro")

text_pt = plt.text(4, 0.9, '', fontsize=16)

ani = animation.FuncAnimation(fig, update_points, np.arange(0, 100), interval=100, blit=True)

plt.show()

第八章

114、哑铃图主要用于展示两个数据点之间的变化。

115、hierarchy模快可以轻松地生成聚类数据并绘制树状图。

116、人口金字塔图一般以年龄为纵轴、以人口数为横轴。

117、pyplot可以使用contour()函数绘制等高线图。

118、棉棒图的标记符号表示数据点的数值。

119、桑基图中所有主支宽度的总和等于所有分支宽度的总和。 正确

120、华夫饼图一般由100个方格组成,其中每个方格代表2%。 错误

121、矢量场的强度只能使用线条的长度来表示。 错误

122、甘特图可以展示每个项目的进展情况。 正确

123、漏斗图可以展示业务流程中数据的变化。 正确

124、关于高级图表的说法中,下列描述正确的是(C)。

A、树状图可以展示部分与整体的比例

B、桑基图中每条分支的长度代表着数据流量的大小

C、矢量场流线图可以表现矢量场的流态

D、棉棒图主要比较数据点到基线之间线段的长度

125、下列字段中,可以访问Sankey对象的中心标签的是(C)。

A、patch        B、flows        C、text      D、texts

126、 Sankey类对象在添加完数据之后需要调用(B)方法完成绘制。

A、add()     B、finish()     C、over()     D、show()

127、下列选项中,可以将层次聚类数据绘制为树状图的是(A)。

A、dendrogram()     B、linkage()     C、finish()      D、stem()

128、下列选项中,哪个的效果是一个10行5列且以垂直方向绘制的华夫饼图?(A)

A、plt.figure(FigureClass=Waffle, rows=10, columns=5, values=[45, 55], vertical=True)

B、plt.figure(FigureClass=Waffle, rows=10, columns=10, values=[45, 55], vertical=True)

C、plt.figure(FigureClass=Waffle, rows=10, columns=5, values=[45, 55])

D、plt.figure(rows=10, columns=5, values=[45, 55], vertical=True)

129、请简述matplotlib中绘制桑基图的流程。

答:(1)使用构造方法Sankey()创建桑基图;(2)调用add()方法为桑基图添加诸如数据流量、标签等选项;(3)调用finish()方法完成绘制。

第九章

130、pyecharts 是一个针对Python用户开发的、用于生成Echarts图表的库。

131、链式调用是一种简化同一对象多次访问属性或调用方法的编码方式。

132、render_embed()方法用于将图表渲染到Jupyter Notebook工具中。

133、pyecharts.charts的Tab类表示以选项卡形式显示的组合图表。

134、pyecharts将图表主题封装为全局变量ThemeType引用类的属性。

135、链式调用可以避免多次重复使用同一个对象变量。 正确

136、pyecharts可以将系列配置项传入set_global_options()方法来配置图表。 错误

137、pyecharts不允许用户使用自定义的主题风格。 错误

138、pyecharts可以轻松地整合Web框架。 正确

139、Timeline类表示时间线轮播的组合图表,它通过点击时间线的时间节点来切换图表。 正确

140、下列选项中,可以创建漏斗图的是(C)。

A、Scatter      B、Map      C、Funnel      D、Sankey

141、关于配置项的说法中,下列描述正确的是(D)。

A、全局配置项是一些针对图表特定元素属性的配置项

B、系列配置项是一些针对图表通用属性的配置项

C、pyecharts可以将InitOpts实例传入set_global_options()方法为图表设置初始化配置项。

D、pyecharts可以将系列配置项传入add()或add_xx()方法来配置图表

142、下列组合多图的方式中,可以采用左右布局的形式显示多个图表的是(A)。

A、并行多图      B、顺序多图      C、选项卡多图      D、时间线轮播多图

143、下列方法中,可以将图表渲染到HTML工具的是(B)。

A、render()B、render_notebook()C、render_embed()D、load_javascript()

144、下列选项中,可以修改图表主题风格的是(A)。

A、Bar(init_opts=opts.InitOpts(theme=ThemeType.ROMA))

B、Bar(init_opts=opts.InitOpts(theme=ROMA))

C、Bar(theme=ROMA)    

D、Bar(theme=ThemeType.ROMA)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有