|
掌握了数据读取的方法后,就需要将数据可视化,进行绘制相应的图形了。 1. 使用Matplotlib绘制简单的折线图:以一组1981-1990年的某地月平均气温数据为例(数据信息如下图所示)。
; i1 U: [2 H& g
5 ^- A% Y+ |7 F
; o- j$ M8 z1 @, [0 m第一步:使用anaconda安装Matplotlib库: - & r. I$ Z( e" c- a' p! X
$ `! N" ]+ H5 t' h0 Q6 C
conda install Matplotlib' a: P. j; R3 ^: w
" ^0 L. K" ~) W2 K4 N0 D; J4 E- D
) h2 Q2 I3 \& o# x- S
* {8 i. C8 m! X* T1 W( W第2步:绘制折线图 subplots()可以在一张图片中绘制一个或多个图表 fig表示整张图片,ax表示图片中的各个图表 plot()根据给定的数据以有意义的方式绘制图表 只输入一个列表时ax.plot(squares),假设第一个数据点对应x坐标为0 同时提供输入和输出ax.plot(input_values, squares)
% j5 O! D! t8 S- ' c! z& n' ^" V0 ]! o7 r3 `8 H
- 4 A9 `. y' [: `8 z' ?4 D
. F) L5 a; D6 }% t- % s3 ]1 k( c2 R! j/ I# g
- 2 j# a0 G0 a B" ^
1 E) i: A' f" \
/ J# |) x# W* P- i( g( T- 5 z4 h) ]5 M! P$ D* C
- 4 M& `) X' L! O1 s6 q1 x
! e5 V, G) E3 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)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()0 l. [8 O8 p! {
代码读取后显示:
+ G& r1 g9 z9 }. O
第3步:使用内置的不同图形样式绘制折线图 1、显示所有的不同样式的图形,共有20张 - 3 J! R8 S: X U8 u
i$ q1 C8 S) {6 @; I% k% ^- l8 J% A' F' o5 J. u9 I1 e$ ?) w
1 x8 m3 g4 D3 j8 @6 V- 3 b# Q- C. f. s9 N4 ]$ O
- f: ~: S8 F v% y7 Q$ Y9 s
/ v# f% d' P1 T+ P: w4 O+ Z/ R
8 Z5 p* o0 L, h, y/ E- 4 x, F7 T1 H) w+ W! j( ? O% @
0 B2 a( S/ f+ F( d3 S- 9 m/ f! {7 [+ ]7 L( U2 Z
4 y; ]- W4 a& A% g: |" k( t! R
m* O: l1 s8 C3 t- ' a: w$ u. e. @- h8 |! o* X6 B
8 e7 q5 `1 A4 N! n! a( v2 N' f& H- 3 p2 f7 J1 I" L* q% v
- 8 J3 T) [* {( y) i2 R
- ; r' o# a* u9 D5 E k- Q6 ^: M
- 5 s0 R/ l$ h4 v; a( m& c
- , `9 D' q! ^9 k. w+ T+ v
- . Y3 R# S) [* O/ v+ C% G
; S: f& @3 ^1 w: B
, v6 T) G8 z" v' b8 j- 1 I# Y( I+ M+ d s0 ?; z$ s& a
2 m4 a& W/ |1 Y$ 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()
9 P# q* I, A8 b 所有的内置样式有(print(plt.style.available)):
# `8 y; m! ?% m. c
2、选择其中一种样式(plt.style.use(‘样式名字’)): 如'Solarize_Light2': - 2 z% [- M( i" m& c
o+ m. n. z% p+ @# n
9 j: @$ q6 U( i
plt.style.use('seaborn') #使用内置样式fig, ax = plt.subplots()
$ I) K5 u* E' s% _
3 Y5 f X2 w% Y5 Y5 e如'bmh':
7 S4 Z+ j; G; z4 c- : a; n7 H* s% I; ^$ j2 {3 z
8 s! G$ {/ q8 I+ `
plt.style.use('bmh') #使用内置样式fig, ax = plt.subplots()
; I6 O7 [7 F! b3 u8 z p- h! W
其余的样式同理可得。 : @/ W8 l8 M, _1 s
第4步:使用Matplotlib绘制简单的散点图- 1 q7 `5 T ?! X0 f( X# ~
5 e3 Q, T7 V: @, \) s- " [: Q9 {3 X) T+ ^
- 9 n8 _7 H/ ^2 s4 K3 q
3 t: z5 v q$ C5 B. S
- Y6 w- c% e) j5 q$ {0 f& n- ) {% ?. \7 \- V) B3 h9 ~: i
- - u1 ?+ W- z" i- Y
- K9 n4 ~" Z! V! f% v" N7 _
+ W7 J: [- q) q, o% a0 `7 ]. ~8 c- $ X/ u7 A% Y6 e$ j' |
9 Q6 `9 `1 @2 m* G. |7 s3 k, |
) ]6 x" d' b( U: h8 u& _8 n6 b4 r4 Y: Y8 ~, v* l4 L5 g) N
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()
; ?( N9 N3 a0 b& t$ Y 注:内置样式可以更换,这里选择的是‘fast’。
( q7 l; G6 B( Q. D1 z) @ |