精华内容
下载资源
问答
  • python绘制地理分布图
    千次阅读
    2021-03-31 20:22:20

    正态分布

    公式: f ( x ) = 1 2 π σ 2 e − ( x − μ ) 2 2 σ 2 f(x)=\frac{1}{\sqrt{2\pi \sigma^2}}e^{-\frac{(x-\mu)^2}{2\sigma^2}} f(x)=2πσ2 1e2σ2(xμ)2

    Python代码

    import numpy as np
    import matplotlib.pyplot as plt
    import math
     
    # 定义正态分布函数
    def normal_distribution(x, mu, sigma):
        return np.exp( -1 * ( (x-mu) ** 2) / ( 2 * (sigma ** 2)) ) / (math.sqrt( 2 * np.pi ) * sigma)
    
    # 初始化mu, sigma
    mu, sigma = 160, 8.65
    x = np.linspace( mu - 6 * sigma, mu + 6 * sigma, 100)
    y = normal_distribution(x, mu, sigma)
    plt.plot(x, y, 'r', label='mu = {0},sigma = {1}'.format(mu, sigma))
    plt.legend()
    plt.grid()
    plt.show()
    

    结果

    Figure_5

    参考资料

    python绘制正态分布(高斯分布)

    更多相关内容
  • 今天小编就为大家分享一篇Python绘制频率分布直方的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇python绘制无向分布曲线示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python绘制正态分布图及求分位数

    千次阅读 2022-06-14 11:21:53
    Python绘制正态分布图,求分位数

    1.绘制正态分布图

    在这里插入图片描述

    # ====================python绘制标准正态分布曲线====================
    import numpy as np
    import math
    import matplotlib.pyplot as plt
    
    
    def gd(x, mu=0, sigma=1):
        """根据公式,由自变量x计算因变量的值
    
        Argument:
            x: array
                输入数据(自变量)
            mu: float
                均值
            sigma: float
                方差
        """
        left = 1 / (np.sqrt(2 * math.pi) * np.sqrt(sigma))
        right = np.exp(-(x - mu)**2 / (2 * sigma))
        return left * right
    
    
    if __name__ == '__main__':
        #  自变量
        x = np.arange(-4, 5, 0.1)
        #  因变量(不同均值或方差)
        y_1 = gd(x, 0, 0.2)
        y_2 = gd(x, 0, 1.0)
        y_3 = gd(x, 0, 5.0)
        y_4 = gd(x, -2, 0.5)
    
        #  绘图
        plt.plot(x, y_1, color='green')
        plt.plot(x, y_2, color='blue')
        plt.plot(x, y_3, color='yellow')
        plt.plot(x, y_4, color='red')
        #  设置坐标系
        plt.xlim(-5.0, 5.0)
        plt.ylim(-0.2, 1)
    
        ax = plt.gca()
        ax.spines['right'].set_color('none')
        ax.spines['top'].set_color('none')
        ax.xaxis.set_ticks_position('bottom')
        ax.spines['bottom'].set_position(('data', 0))
        ax.yaxis.set_ticks_position('left')
        ax.spines['left'].set_position(('data', 0))
    
        plt.legend(labels=['$\mu = 0, \sigma^2=0.2$', '$\mu = 0, \sigma^2=1.0$', '$\mu = 0, \sigma^2=5.0$', '$\mu = -2, \sigma^2=0.5$'])
        plt.show()
    

    2. 基于正态分布求分位数

    例子:计算均值为0,标准差为2的正态分布的累积分布为0.1,0.2,0.8,0.9的分位数对应的x分别为多少

    from scipy.stats import norm
    
    ppf_list = norm.ppf(q=[0.1, 0.2, 0.8, 0.9], loc=0, scale=2)
    print(ppf_list)
    

    输出

    [-2.56310313 -1.68324247 1.68324247 2.56310313]

    3.σ置信区间填充颜色

    在这里插入图片描述

    import numpy as np
    import matplotlib.pyplot as plt
    
    ##制造1000个随机数据
    x = np.linspace(60,260,1000)
    cigema = 20
    miu = 172
    #绘制σ=20,μ=172的正态分布
    fx = 1 / (cigema * (2 * np.pi)**0.5) * np.exp(-(x - miu)**2 / (2 * cigema**2))
    plt.plot(x,fx,color='dodgerblue')
    #取μ ~ 1σ的区间
    fanwei = x[(x>miu) & (x<miu+cigema)]
    #该范围对应的fx
    fx2 = 1 / (cigema * (2 * np.pi)**0.5) * np.exp(-(fanwei - miu)**2 / (2 * cigema**2))
    #该范围内的曲线与x轴之间的颜色填充
    y = np.zeros(fanwei.size)
    plt.fill_between(fanwei,fx2,y,fx2 > y,alpha=0.6,color='dodgerblue')
    plt.show()
    

    参考链接
    [1] Python绘制正态分布曲线 2022.6
    [2] 正态分布置信区间填充颜色 2019.4
    [3] python求正态分布的分位数 2021.7

    展开全文
  • Python绘制高斯分布图像

    千次阅读 多人点赞 2021-12-03 11:17:19
    Python绘制高斯分布图像 文章目录Python绘制高斯分布图像一、需求介绍二、第一个任务三、第二个任务四、readme文件 一、需求介绍 我们这里旨在使用Python来绘制图像,其他的操作一概先不管,绘制高斯分布的图像。 ...

    Python绘制高斯分布图像

    一、需求介绍

    我们这里旨在使用Python来绘制图像,其他的操作一概先不管,绘制高斯分布的图像。
    在这里插入图片描述

    二、第一个任务

    在这里插入图片描述

    代码

    import matplotlib.pyplot as plt
    import numpy as np
    from scipy.stats import beta
    from mpl_toolkits.mplot3d import Axes3D
    from matplotlib import cm
    import math
    import random
    
    
    def x_gauss(mu=0, sigma=1):
        """
        x_gauss(you can change this method to make it can be input.)
        :param mu: mu_x
        :param sigma: sigma_x
        :return: mu, sigma
        """
        return mu, sigma
        # multiple variables.
    
    
    def y_gauss(mu=0, sigma=1):
        """
        y_gauss(you can change this method to make it can be input.)
        :param mu: mu_y
        :param sigma: sigma_y
        :return: mu, sigma
        """
        return mu, sigma
        # multiple variables.
    
    
    def z_beta(alpha0=1, p0=1):
        """
        z_beta(you can change this method to make it can be input.)
        :param alpha0: alpha0
        :param p0: p0
        :return: alpha0, p0
        """
        return alpha0, p0
        # p is a multiple variable, but alpha is not.
    
    
    if __name__ == '__main__':
        mu_x, sigma_x = x_gauss()
        mu_y, sigma_y = y_gauss()
        # get the mu and sigma parameter of the gauss.
    
        X = np.arange(mu_x - 5 * sigma_x, mu_x + 5 * sigma_x, 10 * sigma_x / 100)
        # range is related with sigma_x.
        Y = np.arange(mu_y - 5 * sigma_y, mu_y + 5 * sigma_y, 10 * sigma_y / 100)
        # range is related with sigma_y.
        # X and Y are arrays, ranging from mu - 5 * sigma to mu + 5 * sigma.
    
        X, Y = np.meshgrid(X, Y)
        # make meshgrided.
    
        alpha, p = z_beta()
        eta = beta.pdf(Y, alpha, p)  # Beta.
        # the equation of the eta.(eta ~ B(1, p))
        # however, as i need a range, so i use the range of Y.
    
        Z = \
            (1 / (pow(2 * math.pi, 1 / 2))) \
            * np.exp(- ((X - mu_x) ** 2) / (2 * (sigma_x ** 2))) \
            + eta * \
            (1 / (pow(2 * math.pi, 1 / 2))) \
            * np.exp(- ((Y - mu_y) ** 2) / (2 * (sigma_y ** 2)))
        # Z = X + eta * Y.
    
        list_z = []
        # hist list.
        for line in Z:  # 100 lines.
            appending = random.choices(line, k=10)
            # 100 lines, 10 choices => 100 * 10 = 1000.
    
            for data in appending:
                list_z.append(data)
    
        """
        two pictures => two windows.
        one is hist,
        the other is 3D.
        """
    
        # print(list_z, len(list_z))
        # 1000 points.
        plt.title('N~Z')
        # title.
        plt.xlabel('Z=X+η*Y')
        plt.ylabel('N')
        # labels.
        plt.hist(list_z)
        # draw the hist.
    
        fig = plt.figure()
        ax = Axes3D(fig)
        ax.plot_surface(X, Y, Z, rstride=1, cstride=1, alpha=0.5, cmap=cm.coolwarm)
        # draw the 3D function.
        plt.show()
        # show.
    
    
    
    

    效果:
    在这里插入图片描述
    以及:
    在这里插入图片描述

    三、第二个任务

    代码

    import matplotlib.pyplot as plt
    import numpy as np
    from scipy.stats import beta
    import math
    import random
    
    
    def x_gauss(mu=0, sigma=1):
        """
        x_gauss(you can change this method to make it can be input.)
        :param mu: mu_x
        :param sigma: sigma_x
        :return: mu, sigma
        """
        return mu, sigma
        # multiple variables.
    
    
    def y_gauss(mu=0, sigma=1):
        """
        y_gauss(you can change this method to make it can be input.)
        :param mu: mu_y
        :param sigma: sigma_y
        :return: mu, sigma
        """
        return mu, sigma
        # multiple variables.
    
    
    def z_beta(alpha0=1, p0=1):
        """
        z_beta(you can change this method to make it can be input.)
        :param alpha0: alpha0
        :param p0: p0
        :return: alpha0, p0
        """
        return alpha0, p0
        # p is a multiple variable, but alpha is not.
    
    
    if __name__ == '__main__':
        """
        n is a multiple variable.
        """
        n = 100
        # multiple variable.
    
        mu_x, sigma_x = x_gauss()
        mu_y, sigma_y = y_gauss()
        # get the mu and sigma parameter of the gauss.
    
        X = np.arange(mu_x - 5 * sigma_x, mu_x + 5 * sigma_x, 10 * sigma_x / 5000)
        # range is related with sigma_x.
        Y = np.arange(mu_y - 5 * sigma_y, mu_y + 5 * sigma_y, 10 * sigma_y / 5000)
        # range is related with sigma_y.
        # X and Y are arrays, ranging from mu - 5 * sigma to mu + 5 * sigma.
    
        X, Y = np.meshgrid(X, Y)
        # make meshgrided.
    
        alpha, p = z_beta()
        eta = beta.pdf(Y, alpha, p)  # Beta.
        # the equation of the eta.(eta ~ B(1, p))
        # however, as i need a range, so i use the range of Y.
    
        Z = \
            (1 / (pow(2 * math.pi, 1 / 2))) \
            * np.exp(- ((X - mu_x) ** 2) / (2 * (sigma_x ** 2))) \
            + eta * \
            (1 / (pow(2 * math.pi, 1 / 2))) \
            * np.exp(- ((Y - mu_y) ** 2) / (2 * (sigma_y ** 2)))
        # Z = X + eta * Y.
    
        u = []
        # calculate the u.(1000)
        for i in range(1000):  # 1000.
            z_i = random.choices(Z[i], k=n)  # k = n.
            # n z.
    
            # calculate the u.
    
            u.append((1 / pow(n * np.var(z_i), 1 / 2)) * (sum(z_i) - n * np.mean(z_i)))
            # Ui = (1 / pow(n * np.var(z_i), 1 / 2)) * (sum(z_i) - n * np.mean(z_i))
            # 1000 u.
    
        plt.title('N~Ui')
        # title.
        plt.xlabel('Ui')
        plt.ylabel('N')
        # labels.
        plt.hist(u)
        # show the u.
        plt.show()
        # show
    
    

    效果:
    在这里插入图片描述

    四、readme文件

    This is the homework, there are two packages,
    homework1 and homework2, homework1 is related
    to work 1, and homework2 is related to work 2.
    
    There may be some modules that you do not have
    in your environment, so maybe you should install
    those modules first, such as, numpy, scipy,
    matplotlib, mpl_toolkits and so on.
    
    After adding all the modules, you can change the
    parameters like mu, sigma, p and so on, well,
    you can also keep the parameters as you want,
    and then,you can run the project and get the
    results.
    
    In fact, homework2 is related to homework1,
    but, in order to make the question more clear,
    i divide the whole question into two small
    questions, all in all, they are the same.
    
    

    以上就是使用Python绘制高斯分布图像的一个案例啦,希望对大家有一些帮助啦,最后感谢大家的阅读与支持了啦。

    展开全文
  • 今天小编就为大家分享一篇使用python绘制3维正态分布图的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 目录   1、scipy库中各分布对应的方法   2、stats中各分布的常用方法及其功能   3、正态分布的概率密度函数及其图象 ...    3)python绘制t分布和正态分布的概率密度函数对比   6、F分布的概率密度函数
  • 主要为大家详细介绍了Python绘制中国大陆人口热力,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Python 绘制分布(折线),使用的是 plot()函数。 一个简单的例子: # encoding=utf-8 import matplotlib.pyplot as plt from pylab import * # 支持中文 mpl.rcParams['font.sans-serif'] = ['SimHei'] # '...
  • 【Python应用实战案例】Python绘制全国各省气象分布热力数据.zip
  • Python绘制概率分布直方

    千次阅读 2021-12-13 12:46:25
    Python绘制概率分布直方 文章目录Python绘制概率分布直方一、代码1、案例一2、案例二二、运行效果1、案例一2、案例二 一、代码 1、案例一 import random import numpy as np import matplotlib.pyplot as plt X...

    Python绘制概率分布直方图

    一、代码

    1、案例一

    import random
    import numpy as np
    import matplotlib.pyplot as plt
    
    X = np.random.normal(loc=10, scale=2, size=(1, 1000))[0]
    
    Y = np.random.normal(loc=10, scale=1.0, size=(1, 1000))[0]
    
    P = np.ones(1000)
    P[:600] = 0
    np.random.shuffle(P)
    # print(P)
    
    Z = X + Y * P
    
    plt.hist(Z, density=True, bins=150)
    plt.show()
    
    

    2、案例二

    import random
    import numpy as np
    import matplotlib.pyplot as plt
    
    n = 1000
    # p = 0.4
    U = []
    
    for i in range(1000):
    
    
        X = np.random.normal(loc=10, scale=2, size=(1, n))[0]
    
        Y = np.random.normal(loc=10, scale=1.0, size=(1, n))[0]
    
        P = np.ones(n)
        P[:600] = 0
        np.random.shuffle(P)
    
        Z = X + Y * P
    
        a = 1 / pow(n * np.var(Z), 1/2)
    
        b = sum(Z) - n * np.mean(Z)
    
        u = a * b
    
        U.append(u)
    
    plt.hist(U, density=True, bins=60)
    plt.show()
    
    

    二、运行效果

    1、案例一

    在这里插入图片描述

    2、案例二

    在这里插入图片描述
    最后,感谢大家的阅读与支持,谢谢大家了啦。

    展开全文
  • 大部分情况下,地理...基于 Python地理空间绘图目标实现以下效果(包含比例尺、指北针、经纬网、图例等):制图流程本例以 ESA 2020 陆表覆盖河南省地物分类数据为例,通过gma.rasp.AddColorTable 更新色彩映射
  • 爬取最新截止日期各个省累计确诊数据,并绘制地理分布图 代码实现 #!/usr/bin/env python # -*- coding: utf-8 -*- import json import requests #装了anaconda的可以pip install pyecharts安装pyecharts from ...
  • Python绘制频率分布直方和条形

    千次阅读 2021-12-17 13:12:42
    我们平时做数据分析的时候,经常要了解数据的分布情况,这时候就需要画出频率分布直方,博主采用的画图工具是python中的seaborn,它的画图效果比matplotlib要好 [1]。 首先需要明确一下直方和条形的区别:...
  • 本文分步骤给大家介绍了Python 绘制如此酷炫的三维效果 ,需要的朋友可以参考下
  • Python绘制高斯分布(正态分布)图像,附python绘图技巧
  • Python调用Matplotlib代码绘制分布点,供大家参考,具体内容如下 绘制点图的目的 Matplotlib简介 代码 截图 1.绘制点图的目的 我们实验室正在做关于人脸识别的项目,其中在人脸检测后,会有些误检的图片,但是...
  • import numpy as np import matplotlib.pyplot as plt %config InlineBackend.figure_format = 'retina' np.random.seed(190801) mu = 200 sigma = 25 n_bins = 50 x = np.random.normal(mu, sigma, size=100) ...
  • 本文实例讲述了Python绘制的二项分布概率。分享给大家供大家参考,具体如下: 问题: 抛硬币,20次,每一次朝上的概率是0.3.要求绘制连续几次正面朝上的概率 Python代码: #-*- coding:utf-8 -*- import numpy ...
  • Python绘制频率分布直方项目中在前期经常要看下数据的分布情况,这对于探究数据规律非常有用。概率分布表示样本数据的模样,长的好不好看如果有图像展示出来就非常完美了,使用Python绘制频率分布直方非常简洁,...
  • 关于Python绘制正态分布图(概率密度分布)以及遇到的问题(label无法显示) 目的:统计神经网络模型的参数分布情况 使用seaborn给我们提供的distplot函数来绘制,即调用sns.distplot(),并传入相关参数即可,这里...
  • 我想这就是你想要的——在三维坐标轴上画出等距线。我已经在评论中解释了每个部分的作用import matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dimport numpy as npimport itertools#read in data ...
  • 这是一个使用Python和matplotlib绘制能量分布图的简单模块。 安装 如果您不熟悉Python,最简单的入门方法是使用这样的发行版。 然后,您可以使用终端通过pip安装模块: pip install git+...
  • 现在,用python产生一组随机数据,来演示这些分布: import random import matplotlib import matplotlib.pyplot as plt SAMPLE_SIZE = 1000 buckets = 100 fig = plt.figure() matplotlib.rcParams.update({"font....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,610
精华内容 13,844
热门标签
关键字:

python绘制地理分布图