|
掌握了数据读取的方法后,就需要将数据可视化,进行绘制相应的图形了。 1. 使用Matplotlib绘制简单的折线图:以一组1981-1990年的某地月平均气温数据为例(数据信息如下图所示)。
4 r) z8 j' p% k! {
, ^- j1 V1 [1 Y6 I. a
8 L5 n, k( a! S1 _. E: q; o
第一步:使用anaconda安装Matplotlib库: - ! |$ H! ~( y" w) W- x2 {
7 Y7 z; r5 h9 v! ~# W
conda install Matplotlib
4 c3 k$ d$ w3 C) h
0 I8 k) C9 b+ Z( Y! l$ Y4 N, P t$ ~+ y0 g+ L0 O
# y5 Q1 C D/ d2 m7 I' K' z. Y% H第2步:绘制折线图 subplots()可以在一张图片中绘制一个或多个图表 fig表示整张图片,ax表示图片中的各个图表 plot()根据给定的数据以有意义的方式绘制图表 只输入一个列表时ax.plot(squares),假设第一个数据点对应x坐标为0 同时提供输入和输出ax.plot(input_values, squares)
K7 z; W7 {4 j8 L. j2 w) t- 9 Y; x1 L+ q* u' f1 C/ {5 R
3 B/ a0 ?8 B. d3 C& m
* z. H. k( @3 b5 e9 v: S; x# b- 3 X" d% T. y/ Z4 T2 X3 i2 B7 N" ~
4 A K4 n7 E* u" K
7 C: r. d" C! c9 s- & u3 a! g* k& b* p1 T3 o
! J; x% `1 F1 t$ L0 {, Q; E- * k. n: i5 r( ^
, K4 {& c6 j. B2 q k
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()( z! w/ K" w: p5 b1 I& @% o3 @
代码读取后显示:
( |; b2 D+ N w/ x
第3步:使用内置的不同图形样式绘制折线图 1、显示所有的不同样式的图形,共有20张
* l3 R" n" Z' u' V h, ?
% {0 b u" D5 |) u% P+ @0 h
5 }% x" `+ d8 j8 O3 o
8 G; G1 M* \+ X+ G5 q
/ f# U2 i8 Z5 c0 r7 t# R
. r2 `# B: I6 X7 i' L2 T5 b. P- ; a1 I, ?" Z* x( t" m, b
- / P4 L* {$ }3 o" F
- 8 R3 E( z& Q5 {$ P% c8 |+ V8 l7 V
- - E* v5 E7 _4 [3 c
+ y2 m4 P1 ]% l) k
4 V6 R# v+ [9 O; V- b1 g- . D+ t) {2 M0 B- L3 ?+ {3 \8 b
) J) V, j" M$ |+ ]
% A( e) C1 w2 W$ z0 H# x- " T& W9 v k8 V, Y0 |. ?4 O
9 |' q0 D4 }9 M! `2 [
7 a/ {" K1 u# F" m* v- O. d/ a7 v
3 a1 B Z' B* R8 O' L
) |% h; W# O9 B( z5 N' {2 ?' j4 ~5 L- # N0 L, l5 N+ {4 t% V( [3 Z
: W: M5 u+ J$ @3 ~- - _! }1 [, s" Q/ |3 k: ?: k
- % Y, P& B5 @! O% I2 X- C
7 T) ^; P5 j+ X& V
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()
! J' l. v, P1 q L' Y2 D2 x 所有的内置样式有(print(plt.style.available)):
$ x$ k8 A* a S. Z v
2、选择其中一种样式(plt.style.use(‘样式名字’)): 如'Solarize_Light2': - # t1 A( U1 U: x# U
+ [" A( c& Y% u% F9 P$ Z
% K8 u* {4 }: {* M+ b0 T
plt.style.use('seaborn') #使用内置样式fig, ax = plt.subplots()4 c3 P/ v( `; h# \. Y
+ H: f, x- v$ e$ t! e
如'bmh': - [1 @/ y) z0 r$ d! K) y9 T
+ i2 D3 [ Q L
1 I \8 S. X& C! K
plt.style.use('bmh') #使用内置样式fig, ax = plt.subplots()% a* v5 W- ^) w9 A
其余的样式同理可得。 3 R- A7 _" r" |
第4步:使用Matplotlib绘制简单的散点图- 7 M# Z( R% G& P% U: U9 b! y3 z
- ' t1 M' B% u- G
- 3 s6 g: _) t5 F& `9 {5 z
- 0 J! @% l8 b. F! n4 d/ I' n
3 B6 p% A2 E' f4 R
. h0 x$ \- C; S: a+ Z7 E/ N
3 s* J: R* Y3 P6 r- ; }: E9 s. A& k1 k2 G% k
2 s3 \& b# x" ~* z- ' [) \8 m' ~# X& K! z6 x
( T- [. r- F8 E+ S, A- * I$ M! ~4 T& q ]' X7 a# c' e
/ ^: z) @- S: s: d" S, M2 O+ v/ F2 W! u7 u5 H
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()
: x0 t( E& w; X; S3 a$ ^ 注:内置样式可以更换,这里选择的是‘fast’。
* C5 W$ H6 l, `9 a1 d% O2 z
|