收藏本站 劰载中...网站公告 | 吾爱海洋论坛交流QQ群:835383472

[Python] 【气候软件】Python3:数据可视化绘图(折线图,散点图)

[复制链接]

掌握了数据读取的方法后,就需要将数据可视化,进行绘制相应的图形了。

1. 使用Matplotlib绘制简单的折线图:以一组1981-1990年的某地月平均气温数据为例(数据信息如下图所示)。

6c25f72746ee53e9535e73a42eb7c456.png


) 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

代码读取后显示:

4cb0033425d1e6233c1ff8177f04baf7.png


: 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)):

d30e10d4b7d3d13cbb050ee8986765bb.png

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 _

9a17c4018c1e024a1157ea1211dd7280.png

$ }+ 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

56ebedcc5ca84f69b09178876ebf0b03.png

其余的样式同理可得。


/ 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’。

32efcf65a4d194fc66072d2c903297f6.png


2 U. N" R; |, U  _9 Y& ?
回复

举报 使用道具

相关帖子

全部回帖
暂无回帖,快来参与回复吧
懒得打字?点击右侧快捷回复 【吾爱海洋论坛发文有奖】
您需要登录后才可以回帖 登录 | 立即注册
有风
活跃在2022-10-29
快速回复 返回顶部 返回列表