|
掌握了数据读取的方法后,就需要将数据可视化,进行绘制相应的图形了。 1. 使用Matplotlib绘制简单的折线图:以一组1981-1990年的某地月平均气温数据为例(数据信息如下图所示)。
# @ j6 J7 ^7 z; I! ~" ~# t! `
3 M: O, [* v- |# P
- o+ Y3 e4 \/ \+ {0 n第一步:使用anaconda安装Matplotlib库:
. Y1 J2 u( E& q/ g, R- ?+ x& b _
5 ~& N1 {7 W4 ]6 t: e3 m
conda install Matplotlib
S. G. }3 w0 {3 b
! f0 V( \3 H3 e- e' q/ Q' u2 t- G7 _& [9 K: x7 ?9 [4 O
+ |) T, c# D" ?' c& O第2步:绘制折线图 subplots()可以在一张图片中绘制一个或多个图表 fig表示整张图片,ax表示图片中的各个图表 plot()根据给定的数据以有意义的方式绘制图表 只输入一个列表时ax.plot(squares),假设第一个数据点对应x坐标为0 同时提供输入和输出ax.plot(input_values, squares)
4 [2 f9 m, F' Q2 V+ U! h9 \7 A2 D
+ F/ i( U b# K Z, b+ h
& f5 y7 B' @" ?
5 B/ U- [" r1 G6 a( ^' n- ) i$ T" m) M# |2 D# U
- 1 L) H7 n% I j) l. _
0 s4 t9 Q% z8 b. `, r- - R# k0 W8 Q6 M9 M
- % u4 u+ a$ ?. _8 W
! s V5 E" L$ }) l6 C: v7 ~2 ~
/ ?6 g; M. I. I) S" u1 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)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+ I# I: d4 j' }0 e 代码读取后显示:
$ C) W4 h$ j- Q3 A6 R0 L' V
第3步:使用内置的不同图形样式绘制折线图 1、显示所有的不同样式的图形,共有20张
! |: s0 J. p0 a3 j# {. g
/ ~3 f( J5 s$ g. W7 j0 J& c6 u- ! l! I) _; u9 Q0 e# v2 ~. R4 t4 s
- ' J; r* X$ s' o/ b& m9 |
~) `0 s. N' |- 0 v1 u) i B( i3 v
- [& h+ S* |8 u) D$ g! e
- j0 s# H% ~% }6 ? s0 U* _9 l- ^# m
( h: P5 l, P* B
8 S8 w+ a6 f" \- Z9 C' ]' }
# E9 w3 H) v5 L+ Q2 U- 5 V, j' A2 j2 U4 d+ Y* K* i1 Z1 K
- 1 F! [* }0 e5 e4 k! U: ~ s
- 6 t# V0 v% C: T, W" \9 E, ^ X* ?
0 k0 z1 \9 h7 ]! _$ h
/ }+ S) S7 ~. r! T4 N- 2 x/ I r* S% w# S8 ]; D2 U
$ a4 }7 F7 M; `3 [
! R* N2 @2 u+ R. ?- 4 z1 j5 `' L+ t# A5 j4 j
- , k% H( t. C4 `" i
8 n* Z3 r8 }/ a: z! X7 W2 @
6 g# s6 p4 q. O0 q' ?% D$ g- 5 @& K/ T7 N4 p# P3 f
6 g5 P O0 j- Y8 D
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()& v8 I6 P- q* Z
所有的内置样式有(print(plt.style.available)):
! F( W2 k* S v6 ?1 V# F: q+ x2、选择其中一种样式(plt.style.use(‘样式名字’)): 如'Solarize_Light2': - / P# m$ M) m9 C' g
" Y% Z @6 j) f% c, e2 P. D; \7 S- d h
plt.style.use('seaborn') #使用内置样式fig, ax = plt.subplots()
! R v; G' I9 s( N: \2 e
a8 `4 F* z$ H2 W7 e
如'bmh': - % _$ _, M$ R2 n7 K+ S& F
- * v! H0 Z7 u5 g* U1 v
, z. t: ?/ t5 [, [* e3 k( Y* K
plt.style.use('bmh') #使用内置样式fig, ax = plt.subplots()
* ]; G, a s& U* [* g
其余的样式同理可得。 / X$ K$ ]* i& I4 w) P# v5 Y( C* Y
第4步:使用Matplotlib绘制简单的散点图- " y! }& X! B% x$ ^8 I( v
- + }4 P4 f% o/ W3 L/ i$ @
: ~' d q& X/ _/ H: k0 b1 \! c
, @. N6 V) ?- k6 o1 H$ h5 F
& o4 ~4 Q- P: Y$ m8 y/ d2 y, b
$ A0 D9 d3 w0 x1 E- ; J1 B M1 e. h8 F
- : t# C. B0 J0 S
+ f5 y g. \. D- G8 C0 m% ?6 r1 r! W1 i+ ?
- 8 u" X5 j4 W6 o4 [' j4 E& S
4 M5 [( r" h" ?' H$ |7 m" \
6 z9 m0 s3 e O* b* i! T/ j' u
/ F2 _* b; ^: |" E) V
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()' M$ B% u1 k4 r
注:内置样式可以更换,这里选择的是‘fast’。
( @* Q$ c7 l5 p" E- \- d& Q" m* T
|