欢迎光临杨雨的个人博客站!

杨雨个人网站-杨雨个人博客-杨照佳

杨雨个人博客网站

关注互联网和搜索引擎的个人博客网站

首页 > WEB开发 > Python教程 >

python如何绘制降水图

发布时间:2019-06-19  编辑:杨雨个人博客网站   点击:   

python能快速解决日常工作中的小任务,比如数据展示。python做数据展示,主要用到matplotlib库,使用简单的代码,就可以很方便的绘制折线图、柱状图等。使用Java等,可能还需要配合Html来进行展示,十分繁琐。

python如何绘制降水图

各种平面图的绘制代码:

'''
File Name:   draw
Description: 图形绘制。十分有用,对于工作中实验性的项目,可以快速展示效果。如果使用java,还需要配合前端展示。
'''
import matplotlib.pyplot as plt
import numpy as np  # 模块取别名
# 直方图
def draw_hist():
    mu = 100
    sigma = 20
    x = mu + sigma * np.random.randn(20000)  # 样本数量
    plt.hist(x, bins=100, color='green', normed=True)  # bins:显示有几个直方,normed是否对数据进行标准化
    plt._show()
# 条形图
def draw_bar():
    y = [20, 10, 30, 25, 15]  # Y轴数据
    index = np.arange(5)  # X轴数据,也可以是index = [0,5]
    plt.bar(left=index, height=y, color='blue', width=0.5)
    plt.show()
# 折线图
def draw_plot():
    x = np.linspace(-10, 10, 100)  # -10到10,100个点
    y = x ** 3  # x的3次幂
    plt.plot(x, y, linestyle='--', color='orange', marker='<')
    plt.xlabel('X')
    plt.ylabel('Y')
    plt.show()
# 散点图
def draw_scatter():
    x = np.random.randn(1000)
    y = x + np.random.randn(1000) * 0.5
    plt.scatter(x, y, s=5, marker='<')  # s表示面积,marker表示图形
    plt.show()
# 饼状图
def draw_pie():
    labels = 'A', 'B', 'C', 'D'  # 4个模块
    fracs = [15, 30, 45, 10]  # 每个模块占比例
    plt.axes(aspect=1)  # 使x、y轴比例相同
    explode = [0, 0.5, 0, 0]  # 突出某一部分区域
    plt.pie(x=fracs, labels=labels, autopct='%.0f%%', explode=explode)  # autopct显示百分比
    plt.show()
# 带图例
def draw_with_legend():
    x = np.arange(1, 11, 1)  # x轴坐标,1开始,11结束,步长为1
    plt.plot(x, x * 2)  # 第一条线,x,y坐标
    plt.plot(x, x * 3)
    plt.plot(x, x * 4)
    plt.legend(['Normal', 'Fast', 'Faster'])  # 设置图例,与上面的线对应
    plt.grid(True, color='green', linestyle='--', linewidth=1)  # 绘制网格
    plt.show()
# start
if __name__ == '__main__':
    # draw_hist()
    # draw_bar()
    draw_plot()
    # draw_scatter()
    # draw_pie()
    # draw_with_legend()

3D图的绘制代码:

'''
File Name:   draw_3d
Description: 3D绘图
'''
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 3D 绘制
def draw_3D():
    fig = plt.figure()  # 定义一个窗口
    ax = Axes3D(fig)  # 绘制3D坐标
    # 设置x、y、z的值
    x = np.arange(-4, 4, 0.25)
    y = np.arange(-4, 4, 0.25)
    x, y = np.meshgrid(x, y)  # x-y 平面的网格
    r = np.sqrt(x ** 2 + y ** 2)
    z = np.sin(r)  # z值
    # 做出一个三维曲面,并将一个 colormap rainbow 填充颜色,之后将三维图像投影到 XY 平面上做一个等高线图
    # rstride 和 cstride 分别代表 row 和 column 的跨度。
    ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'))
    # 添加 XY 平面的等高线
    ax.contourf(x, y, z, zdir='z', offset=-2, cmap=plt.get_cmap('rainbow'))
    ax.set_zlim(-2, 2)
    plt.show()  # 展示
# start
if __name__ == '__main__':
    draw_3D()
本文地址:http://itbyc.com/Python/21723.html
转载请注明出处。
分享是一种快乐,也是一种美德:
博客首页 | WEB开发 | 网站运营 | CMS使用教程 滇ICP备14002061号-1