掌握了数据读取的方法后,就需要将数据可视化,进行绘制相应的图形了。 1. 使用Matplotlib绘制简单的折线图:以一组1981-1990年的某地月平均气温数据为例(数据信息如下图所示)。
2 r& H, d; ~" Q+ E. W' V6 ]4 J
$ o& i: h7 [* Y+ j& ^: x% N/ l# S
- @: C8 M E* W* D' t" d+ W% ?
第一步:使用anaconda安装Matplotlib库:
+ w }3 I, g9 h' `( G8 E! Y$ N- p3 W9 P
conda install Matplotlib
- m. X" `# m, M7 J 3 ~) ^% r9 x7 A# Q" ~
) \0 ?$ h# w. @ X( [+ i6 {; U* K7 e# V
第2步:绘制折线图 subplots()可以在一张图片中绘制一个或多个图表 fig表示整张图片,ax表示图片中的各个图表 plot()根据给定的数据以有意义的方式绘制图表 只输入一个列表时ax.plot(squares),假设第一个数据点对应x坐标为0 同时提供输入和输出ax.plot(input_values, squares) - 0 _( [+ R5 W3 @; B
- / y6 M: J6 {1 j: c
7 Q7 G D- Y# d. `& S9 {+ Q
) m% P% }/ b! I# U% I m- 9 @; N- J; k0 a, V: ], v" m8 y
3 G, d7 O- z1 d0 E: n
: M* o3 X4 w8 L& q
; d, x( a" l1 h
& O _5 i% j- E6 y! i- n
- x) k6 s! c0 J+ E
3 x7 N6 u% S0 F
import matplotlib.pyplot as pltx_values = [1981, 1982, 1983, 1984, 1985]y_values = [22.8, 22.3, 22.9, 21.8, 22.2]fig, ax = plt.subplots() #绘制画布,地图ax.plot(x_values, y_values, linewidth=3)ax.set_title("1981-1985 temperature", fontsize=24) #标题ax.set_xlabel("time(year)", fontsize=14) #坐标轴标签ax.set_ylabel("temperature(℃)", fontsize=14)ax.tick_params(axis='both', labelsize=14) #刻度标记plt.show()
" @1 n- z. M1 Q0 v2 P0 ~1 \7 e 代码读取后显示:
, Z t2 j$ G! q. g. K
第3步:使用内置的不同图形样式绘制折线图 1、显示所有的不同样式的图形,共有20张 - ' x, l3 Q2 e! }( D
- ; { V/ _" u6 V* C" m4 v
' ]0 d; C. c/ n8 f4 d
0 z( F5 L& u/ j
+ x2 i: b7 E) u, |& \) o' p1 Y5 z
, u# ~ l1 i( O0 i/ V# E7 s; M- ! q7 b; ]1 ^# x" x+ A+ z, N. t
- $ e' V) K. Y$ T
- 4 R: O6 Z# j4 Z- n7 t5 g
5 c _3 q- U9 O( G3 G& k
9 W8 H4 ^8 d4 k6 \$ i- O- + R. }' f$ L7 Z$ a- H
- 4 c: Q2 E% Q* c- x9 x8 S" l
% `5 _5 s" w9 T9 r* b- c5 M+ X
8 i+ J8 i& L* |- {- - ?4 D/ M+ T$ P& u2 Z$ l
$ U, M+ E6 r7 v' D$ ^, X; c- ( R! n8 Y2 A$ {* O/ T# r
- 7 B' T3 S& \. P, }" _ Z8 ?
& I& z8 d6 {' \$ S! l. q: V
- f. b5 b7 `+ f- ) s; `8 _' [9 c! N0 \. R5 k
% T0 d1 V8 `- z8 E, z- * T. R4 k& u1 o. x! h
1 |& S) J/ M. y4 c( j
import matplotlib.pyplot as pltx_values = [1981, 1982, 1983, 1984, 1985]y_values = [22.8, 22.3, 22.9, 21.8, 22.2]fig, ax = plt.subplots()ax.plot(x_values, y_values, linewidth=3)# 使用内置样式画图print(plt.style.available) #显示有哪些可用的内置样式mystyles = plt.style.availablefor mystyle in mystyles:plt.style.use(mystyle) #使用内置样式fig, ax = plt.subplots()ax.plot(x_values, y_values)ax.set_ylabel("temperature(℃)", fontsize=14)ax.set_xlabel("Value") #坐标轴标签ax.set_ylabel("Square of Value")ax.tick_params(axis='both') #刻度标记plt.show()! S7 d' k/ }+ ?6 e
所有的内置样式有(print(plt.style.available)):
5 R9 G @, i4 B& i9 i3 d' o
2、选择其中一种样式(plt.style.use(‘样式名字’)): 如'Solarize_Light2': - : X6 w3 K6 v, _! j; m
- # h* O9 @' m2 B: w
! o, w+ D3 [0 n0 A1 C
plt.style.use('seaborn') #使用内置样式fig, ax = plt.subplots()
8 @( p: \) d7 ~
6 R: g% v/ o# q/ A如'bmh': - ; \) ~) k1 r4 u6 h* F. H3 @$ H
$ H$ q% z+ P, H# J5 p9 c% o; t$ F0 @3 @1 P2 X# x
plt.style.use('bmh') #使用内置样式fig, ax = plt.subplots()
0 r" |2 D5 C0 s" [2 }
其余的样式同理可得。 + P# L; a) w) R
第4步:使用Matplotlib绘制简单的散点图- 0 J7 s: e3 o, x' d6 E
) l+ Z8 V) f. ~# A: E- % d9 ~( g: w$ ]* f
: N/ M8 |, H7 j, _6 I$ _
9 |# @* n' S7 c8 Z
9 ~/ c/ J; x- T
; X3 C* s) r8 z% r& F/ L$ x- C
$ Y7 o! J& o j/ f) K6 [! B2 ^" u
% z; ~7 }, X% E& ^* D- ' d2 }9 T- Q# [" c4 y" R
0 z9 [7 G* m* B% h
~ Q- q, p' o' }# s( R- j3 M! a
: p# k& S$ D( g. `2 `2 v& |% S0 t/ p" ?, X7 w( M! a
import matplotlib.pyplot as pltx_values = range(1, 20) #取连续的1-20的整数y = [x**2 for x in x_values] #x值的二次方为y值plt.style.use('fast') #使用内置样式fig, ax = plt.subplots()ax.scatter(x_values, y, c='red', s=50)#绘制散点图,传递x和y坐标,点的尺寸s#颜色c,可用设置为'red',(0, 0.8, 0)ax.set_title("1981-1985 temperature", fontsize=24) #标题ax.set_xlabel("Value") #坐标轴标签ax.set_ylabel("temperature(℃)", fontsize=14)ax.tick_params(axis='both') #刻度标记plt.show()
& P$ V: {& l5 g9 q% S6 Q 注:内置样式可以更换,这里选择的是‘fast’。
+ v) M' X# c$ @$ P$ Y/ M |