|
掌握了数据读取的方法后,就需要将数据可视化,进行绘制相应的图形了。 1. 使用Matplotlib绘制简单的折线图:以一组1981-1990年的某地月平均气温数据为例(数据信息如下图所示)。
# w6 ?5 m/ p8 ]) A9 j% z$ }& M0 e7 b. c7 F% A9 w( N
, k0 f! G% T; L5 f% e( ~
第一步:使用anaconda安装Matplotlib库: - % r0 T% z+ q0 @% ~! _0 u
' Z( P3 z$ r4 |$ l# U" U# d8 J7 }
conda install Matplotlib
8 ~' C4 x: s+ D/ C& g5 q 1 h+ X+ I9 J9 J7 O1 I# y
! e) F: ^0 Z1 b. x3 Z2 }* }) c! A- z2 o/ K7 K
第2步:绘制折线图 subplots()可以在一张图片中绘制一个或多个图表 fig表示整张图片,ax表示图片中的各个图表 plot()根据给定的数据以有意义的方式绘制图表 只输入一个列表时ax.plot(squares),假设第一个数据点对应x坐标为0 同时提供输入和输出ax.plot(input_values, squares) - ( R/ P6 y' T* v4 M5 U2 z6 q. h
$ H. @! G0 M& k" e- : v @' T0 ^1 O# @" y' b. [
1 J) ~0 K1 L, K5 E& G
4 ?7 L* k4 D0 X8 ?- ) L7 E! S: k- Y# b0 B% V
- . N2 {2 N3 u. M! a( u
& I4 r+ h; {: N/ T6 |; c# w
$ V3 a, o' M3 [* B% ]' E
$ L& P- d) [! r$ I% X
4 C) u! K- b$ S" X
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()2 H- `: }2 n1 a$ V1 \
代码读取后显示:
7 y7 H j$ p0 C2 C
第3步:使用内置的不同图形样式绘制折线图 1、显示所有的不同样式的图形,共有20张
# e3 h3 k7 w' ?) T: Z7 A- 7 b7 N( d* w1 _
- 7 R! [) ~( t# m( A$ Z4 o
% h3 {6 J0 t- `) [ ?9 E9 H- % O5 j: J' P4 f$ T, N- z/ J
( e8 Q0 u3 p3 V0 z* m o$ g4 f( K- % M E* k! ~9 l& q7 x5 {) K5 S
' G7 E& S- @1 M3 v4 _0 T- $ l: j5 X7 Z$ T3 h/ ]# _
# t4 A4 w& t4 M1 G' t, P9 A* M4 X2 O- N- ; l) ^3 q4 H7 w# I1 `$ G
- ( ]; C' T9 F+ K$ H, v
1 g5 H* S/ m8 Q- + _- p6 X$ y' y% B! T0 P+ p
- ' l; V! k1 ` C, V/ h& {5 N
: ~( g$ G1 `) s# w1 a4 z- ) I$ i$ \' L; R( E
! C; X. D6 `* S4 \6 Q: q7 u
4 e) A* C: t' e- `+ d6 j, w- 0 J8 ~; K4 {, j6 o! M* j
( ?& J+ U, h4 `) W- * f8 F& P8 ?/ [: m% W, Y: {
1 S6 A; l' g" I9 @7 R$ G9 a( H
) L9 M ]0 }. |+ q2 j4 B! h3 D. O% i9 c, k" 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()8 n, E! r5 W! Y# ]* i5 d3 b
所有的内置样式有(print(plt.style.available)):
. i! W' q" O- c; e2、选择其中一种样式(plt.style.use(‘样式名字’)): 如'Solarize_Light2': - 6 q* k% e/ a( |/ j* }
- $ Y+ }! Q: `; Y1 ^
6 v! R! f* H& d( I" M" y
plt.style.use('seaborn') #使用内置样式fig, ax = plt.subplots()$ q. n; o8 a8 y# k9 S* a+ e3 s
$ V0 B# X0 E5 p5 T
如'bmh': - + P- b: \; d6 q$ U/ N5 Y
+ Q# `$ X( h9 e2 [1 M$ B; z9 H4 C5 l2 R3 Q8 P
plt.style.use('bmh') #使用内置样式fig, ax = plt.subplots()
9 X& P- z! q; @" F
其余的样式同理可得。
, }- K6 e/ ~' L! V0 Z g1 x第4步:使用Matplotlib绘制简单的散点图
9 D4 h. o9 `( [4 R1 \3 x* I% C2 n& @- # U7 g) N2 W8 e7 ?4 u; Q6 A
) R, U' y& J9 | v- 2 u5 H- F' H, R( z" O+ F% g
- $ n/ V L0 r# n6 F2 ^
K/ B# p" q) ?+ |
- S3 m" J. h! E- G* u& k) {4 J) N' g/ Q
9 @5 U ^. a. @6 [& d
( H$ D# _. S5 z# o/ d1 v2 w
% P4 [4 _2 i! S4 x/ p# b. D+ T- U: c2 K4 ?+ b# |
! j4 o# U9 E+ i9 k3 ?& U9 b4 @- G: q" T" a& G9 J! `
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()
! Q2 U! _% Q: D! Q- u! K b 注:内置样式可以更换,这里选择的是‘fast’。
! V2 j" j: p/ l: b& a F
|