|
掌握了数据读取的方法后,就需要将数据可视化,进行绘制相应的图形了。 1. 使用Matplotlib绘制简单的折线图:以一组1981-1990年的某地月平均气温数据为例(数据信息如下图所示)。
! C" R0 q) W5 G9 m+ e+ K/ t$ C0 c, W: z& s# Y0 J; a
( N5 h- G1 P" u, h6 {3 @7 Z第一步:使用anaconda安装Matplotlib库: - . d7 a8 g; C# M2 e
! }7 S, f- H0 Z- E6 Q
conda install Matplotlib
( s1 B+ T8 w. d1 g, q
# o) A8 N0 P* Y7 m2 m4 `1 \ u& m' P. u/ u
6 t# v+ B% {: M
第2步:绘制折线图 subplots()可以在一张图片中绘制一个或多个图表 fig表示整张图片,ax表示图片中的各个图表 plot()根据给定的数据以有意义的方式绘制图表 只输入一个列表时ax.plot(squares),假设第一个数据点对应x坐标为0 同时提供输入和输出ax.plot(input_values, squares)
& [6 t8 E E: ~) ~- 1 \" `: [: L7 Q& B8 R2 u5 i
- 0 `! W2 U( L) B2 a3 g) i
- 2 A' X8 b% o" n* p
- s$ A. H# Z$ D0 V: N; s
4 d$ M% t4 g( R$ b/ ]- 6 [2 r4 j! a, w6 [, v3 r, K
. l' H/ t# n) q- H, X0 v+ D9 a6 s
/ T- t: o8 \! B* m8 D- l- J( t9 t4 }7 T
2 q9 X$ T0 C; s+ L m0 R
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()
7 m$ |2 Y1 y. m2 f" d V, a+ C 代码读取后显示:
, i, U# K% i* L: V
第3步:使用内置的不同图形样式绘制折线图 1、显示所有的不同样式的图形,共有20张 - : \$ R1 n. n. }- Z* {- q
$ t3 V6 {8 `2 T# X8 S% H, m- 2 }( t% M) _; ~
$ s- M* T+ X Q# q5 H2 I
4 L8 @+ b( g3 n; X1 c; q9 L7 K( q$ Y
* u, m: f: B) q, G4 Y6 J& z
8 X4 I$ m# S- q ^* Q- ; \7 L4 V% A% I# `& b& A
- # O* R1 D+ W0 a8 q" v" {
; I: s' R6 k$ }% T- 6 v1 X- Z7 @+ }6 L( t# K
- 0 h/ z% b) d7 Q1 I& V9 [
3 T# E2 k3 L( c3 B& y% X' l2 f$ Z) r- 1 I& S. _( c z, Y$ ^
0 V5 [6 n" E/ o- : m; p+ x0 m% a( D
- O2 v" V7 A1 M% N$ Y
% p f$ K2 I2 U# U" `; b4 [, i- ) W% S+ T6 ?7 g
- - B0 C1 d0 T6 ]* C5 A3 t- O
, a& y1 y/ z5 Z1 T! j- 5 B7 r* F# r g) w: H9 |
# p0 u) L% ^8 x
* I! [ b& S A3 z* U( @# I7 A. b. [4 `# b; s! q
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()6 Q: }3 | h( [1 ]: c7 @
所有的内置样式有(print(plt.style.available)):
! ~ U4 [9 l6 ?: I8 [& T( {+ [
2、选择其中一种样式(plt.style.use(‘样式名字’)): 如'Solarize_Light2': - 9 X' v* T) r8 d! x4 h
- / j1 c- L+ x$ l+ r5 a( K
5 |0 N2 O5 ^7 f$ F
plt.style.use('seaborn') #使用内置样式fig, ax = plt.subplots()
2 b7 r1 D6 U% ~/ A4 c, L
$ x7 a8 a2 V3 ]/ p9 W如'bmh': - * ~, f" V. j1 ]' ^6 x, ~# P- D' g
. I$ a9 R9 F3 B) b' R4 |/ j0 }; ~- n+ Z/ y v; f6 o3 h
plt.style.use('bmh') #使用内置样式fig, ax = plt.subplots(): T$ J+ U+ m+ D0 n5 v
其余的样式同理可得。
3 H* z7 v6 q9 q6 e5 a* Y7 ~% ]第4步:使用Matplotlib绘制简单的散点图- ; C! h6 x) v A8 f' A
" T. z6 c4 {, ?4 R& b
4 c* w) K, P0 I* g* X
. `# \: ^) J3 C" ^: }- 9 |9 I' _0 m2 g: w8 z# k) d; N
- 3 c8 w4 N1 P$ l1 N8 ?6 t! |
- 4 _, G% L; ]- f2 l! ?- z5 b
& y4 U1 J! K# X1 I9 L: R- " Z- q" Y0 E0 u4 \0 i1 B
6 c3 e' Y/ t* I3 U8 t# K I' ~- Q- f. ?2 ^, [1 `! ~! v# H
8 X& l ~9 X6 k v; ^8 F% a- $ c) Z/ \' ?) |
; D% R5 x* C+ j+ }8 }
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()
2 T5 p7 v2 u% x, ^ R; s9 r 注:内置样式可以更换,这里选择的是‘fast’。
& M- h4 d% X' @2 [ |