|
掌握了数据读取的方法后,就需要将数据可视化,进行绘制相应的图形了。 1. 使用Matplotlib绘制简单的折线图:以一组1981-1990年的某地月平均气温数据为例(数据信息如下图所示)。
) D# s+ T2 n! X0 t
. P# c z2 }; x: Q7 L: g
5 w7 {/ o4 e! j4 Q第一步:使用anaconda安装Matplotlib库: - 6 ]8 {. D' j/ J8 M g& ?" a+ E
+ E" W2 C, \( Q8 M& d$ Q% M
conda install Matplotlib
0 m0 u9 Z% f6 u1 b" N/ Z - M. _' ?5 Y: E
# v' I; K+ {9 ]4 l( b
5 n( h- w9 V1 e K第2步:绘制折线图 subplots()可以在一张图片中绘制一个或多个图表 fig表示整张图片,ax表示图片中的各个图表 plot()根据给定的数据以有意义的方式绘制图表 只输入一个列表时ax.plot(squares),假设第一个数据点对应x坐标为0 同时提供输入和输出ax.plot(input_values, squares) - ) F2 b1 R+ Q. Q- t. y m
- " V( Y+ P/ S' r6 R+ o
8 j* d1 I4 j5 X' L( Q' ^/ [2 Y# b
" B. p; ]2 I' w F9 R- 6 ~% b9 G M( L& |3 M
4 @* q( ^7 [0 ~# Q3 a+ |$ e) I
. s: ~5 B% q6 j& B8 \
" H, f/ H( R/ G) w' v5 M
7 q; d+ J5 o7 V8 o4 n' M& t& \- ; I* ~, w" H% u0 ^7 ]2 i
# S3 R |# f: V* h3 n* @7 l2 z
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(); T; u( w" o4 L. k% w/ S
代码读取后显示:
: V- M `& b6 _. V, x6 H$ G& T
第3步:使用内置的不同图形样式绘制折线图 1、显示所有的不同样式的图形,共有20张
8 \; \# Q/ r$ ]8 z- e, [" ~6 ?- 5 d* \' ]7 v& R0 k
: Q2 @ _* f+ s2 _) O! D$ \% F; g
7 B e. j$ S) f( k& K8 Y( |
! C, d0 j) [* K/ B, P* l6 l) T- 6 q7 B1 Z/ F2 D
, f+ `* d/ L! A% {1 u8 Y- " |7 i$ y% [& m6 I# J" K: d+ E6 T
8 s9 l! W5 H& d1 s
+ P' ]+ s. x, Q% M. c3 |/ V5 p b5 V
; s' |4 E/ Y1 H8 f1 _' a- " L4 F6 q2 W& S" C8 P% E; ?, K
- ( K' u. L" h ^9 N1 |
% b% p- [3 U0 M; F1 T2 [
: f4 [ ?, I# I' Y
# E& s: a3 a: c9 u1 Z0 I' i( ]5 G- 1 j _" Q) x5 Q8 T, Z# y4 A% R
/ ~7 v9 e1 R4 s K8 U0 i3 E
: b7 {' j8 a$ ]4 P- `+ u) Z9 ]! ?* W: i$ e
- " j A) @3 \+ g: t
. F$ N+ A8 I" u- 3 t T% ~1 A5 v, p
- # W9 B9 A: |. h$ h# S
8 N1 v6 a4 [3 y& ~2 [7 i0 m+ H0 n5 ]
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(): {4 E2 [8 F7 ?1 _
所有的内置样式有(print(plt.style.available)):
6 D+ b8 F7 o4 {+ Q* B0 _9 H
2、选择其中一种样式(plt.style.use(‘样式名字’)): 如'Solarize_Light2':
' J6 G T' o& s+ v; A- + C8 u( f c! U6 @7 U
4 X" y/ Q$ Y; f' z# v
plt.style.use('seaborn') #使用内置样式fig, ax = plt.subplots()' h3 D; @) N* }: b" _3 _
$ }+ E2 {& g2 _; j" M X
如'bmh':
4 [6 b. K$ y- Y
) |. i, R- E$ i `& n2 h y' J$ L
' q" H! |( C" U2 B1 y! W9 [0 d
plt.style.use('bmh') #使用内置样式fig, ax = plt.subplots()$ d9 [ O9 y, o/ w7 p! v
其余的样式同理可得。
/ A4 I. `! ~( a% s3 c第4步:使用Matplotlib绘制简单的散点图
- O3 h; |9 k# Z- F+ s* C/ L+ C1 O
1 W% K$ ?+ A: s3 \8 p3 n h! s/ X
% ~$ Q4 R& h5 E6 _
1 I* A; z5 P1 ^* X& q' ]/ g
4 T1 d; p+ q6 J u8 C4 l% U
+ b J( H2 A# s |! a
* h: t0 W. U" e3 H( F$ c/ K- " t' e% m8 b4 C9 E& W: D5 ^! ^* [
7 k6 S7 C9 m2 q0 f1 `) M
7 X/ A" t# Z1 F3 W- V& v! @2 U* }- q* r* p
* ?8 {8 \( r. V( H9 n' Z9 G- ; k2 y. M$ v- Y8 b' D! f) K f
# [! B3 k! |. k/ f! ~9 Z1 u5 i& F& m; m
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()
3 U; _1 s" l, q" J& z- _. C( {+ M 注:内置样式可以更换,这里选择的是‘fast’。
2 U. N" R; |, U _9 Y& ? |