Heim  >  Artikel  >  Backend-Entwicklung  >  So zeichnen Sie eine Niederschlagskarte in Python

So zeichnen Sie eine Niederschlagskarte in Python

anonymity
anonymityOriginal
2019-06-19 10:10:398115Durchsuche

Python kann kleine Aufgaben in der täglichen Arbeit, wie beispielsweise die Datenanzeige, schnell lösen. Für die Datenanzeige in Python wird hauptsächlich die Matplotlib-Bibliothek verwendet. Mit einfachen Codes können Sie problemlos Liniendiagramme, Balkendiagramme usw. zeichnen. Bei Verwendung von Java usw. müssen Sie möglicherweise auch mit HTML für die Anzeige zusammenarbeiten, was sehr umständlich ist.

So zeichnen Sie eine Niederschlagskarte in Python

Zeichnungscode für verschiedene Grundrisse:

'''
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=&#39;--&#39;, color=&#39;orange&#39;, marker=&#39;<&#39;)
    plt.xlabel(&#39;X&#39;)
    plt.ylabel(&#39;Y&#39;)
    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=&#39;<&#39;)  # s表示面积,marker表示图形
    plt.show()
# 饼状图
def draw_pie():
    labels = &#39;A&#39;, &#39;B&#39;, &#39;C&#39;, &#39;D&#39;  # 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=&#39;%.0f%%&#39;, 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([&#39;Normal&#39;, &#39;Fast&#39;, &#39;Faster&#39;])  # 设置图例,与上面的线对应
    plt.grid(True, color=&#39;green&#39;, linestyle=&#39;--&#39;, linewidth=1)  # 绘制网格
    plt.show()
# start
if __name__ == &#39;__main__&#39;:
    # draw_hist()
    # draw_bar()
    draw_plot()
    # draw_scatter()
    # draw_pie()
    # draw_with_legend()

Zeichnungscode für 3D-Zeichnungen:

&#39;&#39;&#39;
File Name:   draw_3d
Description: 3D绘图
&#39;&#39;&#39;
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(&#39;rainbow&#39;))
    # 添加 XY 平面的等高线
    ax.contourf(x, y, z, zdir=&#39;z&#39;, offset=-2, cmap=plt.get_cmap(&#39;rainbow&#39;))
    ax.set_zlim(-2, 2)
    plt.show()  # 展示
# start
if __name__ == &#39;__main__&#39;:
    draw_3D()

Das obige ist der detaillierte Inhalt vonSo zeichnen Sie eine Niederschlagskarte in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Kann VS Python schreiben?Nächster Artikel:Kann VS Python schreiben?