爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 1532|回复: 2

[经验总结] Python数据可视化绘图(折线图,散点图)

[复制链接]

新浪微博达人勋

发表于 2023-10-1 16:57:27 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 小白大白123 于 2023-10-1 17:22 编辑

Python数据可视化绘图(折线图,散点图)


(1)有关python的经验方法都是基于anaconda下载的库包(conda install 库包名 或 cmd 命令 pip install 库报名),以及使用anaconda里的spyder(python3.8)编辑和运行代码。
(2)所有的代码都是经过了spyder(python3.8)正常运行得出结果的,可以放心使用,也欢迎交流和讨论。
(3)关于不同版本运行本号分享的代码出现问题,请自行网上搜索解决办法解决。

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



第一步:使用anaconda安装Matplotlib库:
conda install Matplotlib



第2步:绘制折线图
subplots()可以在一张图片中绘制一个或多个图表
fig表示整张图片,ax表示图片中的各个图表
plot()根据给定的数据以有意义的方式绘制图表
只输入一个列表时ax.plot(squares),假设第一个数据点对应x坐标为0
同时提供输入和输出ax.plot(input_values, squares)

import matplotlib.pyplot as plt
x_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()


代码读取后显示:



    640 (3).png



第3步:使用内置的不同图形样式绘制折线图
1、显示所有的不同样式的图形,共有20张
import matplotlib.pyplot as plt

x_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.available

for 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()

所有的内置样式有(print(plt.style.available)):
640 (4).png

2、选择其中一种样式(plt.style.use(‘样式名字’)):
如'Solarize_Light2':
plt.style.use('seaborn') #使用内置样式
fig, ax = plt.subplots()

640 (5).png


如'bmh':
plt.style.use('bmh') #使用内置样式
fig, ax = plt.subplots()

640 (6).png

其余的样式同理可得。

第4步:使用Matplotlib绘制简单的散点图

import matplotlib.pyplot as plt
x_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()


注:内置样式可以更换,这里选择的是‘fast’。

640 (7).png




密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2023-10-7 08:46:40 | 显示全部楼层
{:eb502:}{:eb502:}
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-10-10 21:25:04 | 显示全部楼层
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表