Python不断覆盖先前绘图上的历史记录,但不将其保存为所需的绘图

2023-12-10

我正在保存两个单独的图形,每个图形应包含 2 个图。

问题是第一个图没问题,但第二个图不会在新图上被覆盖,而是在前一个图上被覆盖,但在保存的图中,我只找到其中​​一个图:

这是第一个数字,我正确地得到了第一个数字:

import scipy.stats as s
import numpy as np
import os
import pandas as pd
import openpyxl as pyx
import matplotlib
matplotlib.rcParams["backend"] = "TkAgg"
#matplotlib.rcParams['backend'] = "Qt4Agg"
#matplotlib.rcParams['backend'] = "nbAgg"
import matplotlib.pyplot as plt
import math

data = [336256, 620316, 958846, 1007830, 1080401]
pdf = array([ 0.00449982,  0.0045293 ,  0.00455894,  0.02397463,
    0.02395788,  0.02394114])

fig, ax = plt.subplots();
fig = plt.figure(figsize=(40,30))

x = np.linspace(np.min(data), np.max(data), 100); 
plt.plot(x, s.exponweib.pdf(x, *s.exponweib.fit(data, 1, 1, loc=0, scale=2)))
plt.hist(data, bins = np.linspace(data[0], data[-1], 100), normed=True, alpha= 1)
text1= ' Weibull'
plt.savefig(text1+  '.png' )

datar =np.asarray(data)
mu, sigma = datar.mean() , datar.std() # mean and standard deviation

normal_std = np.sqrt(np.log(1 + (sigma/mu)**2))
normal_mean = np.log(mu) - normal_std**2 / 2
hs = np.random.lognormal(normal_mean, normal_std, 1000)
print(hs.max())    # some finite number
print(hs.mean())   # about 136519
print(hs.std())    # about 50405

count, bins, ignored = plt.hist(hs, 100, normed=True)    
x = np.linspace(min(bins), max(bins), 10000)
pdfT = [];
for el in range (len(x)):
    pdfTmp = (math.exp(-(np.log(x[el]) - normal_mean)**2 / (2 * normal_std**2)))
    pdfT += [pdfTmp]


pdf = np.asarray(pdfT)

这是第二组:

fig, ax = plt.subplots();
fig = plt.figure(figsize=(40,40))

plt.plot(x, pdf, linewidth=2, color='r')
plt.hist(data, bins = np.linspace(data[0], data[-1], 100), normed=True, alpha= 1)

text= ' Lognormal '
plt.savefig(text+ '.png' )

第一个图将直方图与曲线一起保存。相反,第二个仅保存曲线

更新1:正在看这个问题,我发现清除绘图历史记录将有助于数字不混淆,但仍然是我的第二组绘图,我的意思是对数正态不保存在一起,我只得到曲线而不是直方图。


发生这种情况是因为您设置了normed = True,这意味着直方图下方的面积标准化为1。并且由于您的箱非常宽,这意味着直方图条的实际高度非常小(在这种情况下,所以小到看不见)

如果你使用

n, bins, _ = plt.hist(data, bins = np.linspace(data[0], data[-1], 100), normed=True, alpha= 1)

n 将包含您的垃圾箱的 y 值,您可以自己确认这一点。
另请参阅文档plt.hist.

因此,如果将范数设置为 False,则直方图将可见。

编辑:垃圾箱数量

import numpy as np
import matplotlib.pyplot as plt

rand_data = np.random.uniform(0, 1.0, 100)

fig = plt.figure()

ax_1 = fig.add_subplot(211)
ax_1.hist(rand_data, bins=10)

ax_2 = fig.add_subplot(212)
ax_2.hist(rand_data, bins=100)

plt.show()

will give you two plots similar (since its random) to: enter image description here

它显示了 bin 的数量如何改变直方图。 直方图可视化数据沿一维的分布,因此不确定输入和数据箱的数量是什么意思。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python不断覆盖先前绘图上的历史记录,但不将其保存为所需的绘图 的相关文章

  • matplotlib 中的固定大小矩形?

    Is there any way to plot a rectangle spanning the entire length of the X axis but with a fixed and static height of say
  • 为什么 Jupyter Notebook 在更新绘图时会创建重复的绘图

    我正在尝试在 Jupyter Notebook 中绘制每秒更新一次的绘图 现在 我只有一个可以运行的简单代码 matplotlib inline import time import pylab as plt import numpy as
  • 如何在 PyQt5 GUI 中快速绘制 matplotlib 实时绘图

    几年前 我已经尝试过嵌入现场matplotlib中的情节PyQt5图形用户界面 实时绘图显示从传感器捕获的实时数据流 某些过程 我已经成功了 您可以在此处阅读相关帖子 您自己的 GUI 中的 Matplotlib 动画 https stac
  • 如何有效地将多个 rgl 图连接成一个图?

    我用以下命令制作了 3D 绘图rgl打包我的数据的每个因子级别并将它们保存为 png 我的数据有 30 个不同的级别 从而产生了 30 个不同的图像文件 现在我想将这些 png 合并成一个图 我会这样显示它们 下面的例子说明了我想做的事情
  • 给定一般 3D 平面方程

    假设我有一个 3D 平面方程 ax by cz d 我如何在 python matplotlib 中绘制它 我看到一些例子使用plot surface 但它接受 x y z 值作为二维数组 我不明白如何将我的方程转换为参数输入plot su
  • ggplot2 密度直方图,宽度=.5,vline 和居中条形位置

    我想要一些离散数据的良好密度 总和为 1 直方图 我尝试了几种方法来做到这一点 但没有一种方法完全令人满意 生成一些数据 data set seed 999 d test data frame score round rnorm 100 1
  • matplotlib 中没有边缘的阴影矩形补丁

    当尝试将带有填充图案的矩形面片添加到绘图中时 在指定填充值时似乎无法将关键字参数 edgecolor 设置为 none 换句话说 我试图添加一个没有边缘但有图案填充的阴影矩形 这似乎不起作用 仅当我还允许在矩形面片周围绘制边缘时 该图案才会
  • 删除网格线,但保留框架(matplotlib 中的 ggplot2 样式)

    使用 Matplotlib 我想删除图中的网格线 同时保留框架 即轴线 我已经尝试过下面的代码和其他选项 但我无法让它工作 如何在删除网格线的同时保留框架 我这样做是为了在 matplotlib 中重现 ggplot2 图 我在下面创建了一
  • 连接极线ggplot图中的间隙

    当 ggplot 使用极坐标绘制线图时 它会在最高和最低 x 值之间留下间隙 Dec and Jan如下 而不是缠绕成螺旋状 我怎样才能继续这条线并缩小差距 特别是 我想使用月份作为 x 轴 但在一条循环线上绘制多年的数据 Reprex l
  • 如何查找页面上R图形的字节大小?

    我想监控 R 在各个页面上生成的图形的基本质量 例如每个页面的字节大小 我现在只能对平均页面进行质量保证 请参阅下面的章节 我认为这项任务必须有一些比一般措施更内置的东西 生成 4 页的代码Rplots pdf我想知道此处输出中每个页面的字
  • 自定义seaborn jointplot中的轴标签

    我似乎陷入了一个相对简单的问题 但在经过一小时的搜索和大量的实验后无法解决它 我有两个 numpy 数组x and y我正在使用seaborn的联合图来绘制它们 sns jointplot x y 现在我想分别将 x 轴和 y 轴标记为 X
  • python 中 matlibplot 中散点图的缩放轴

    我正在使用 matlibplot 进行数据可视化 我的绘图共有 6502 个数据值 运行良好 但值接近且密集 例如 我的 y 轴值范围在 3 到 10 之间 我需要清楚地获取它们之间的每个点 即像 9 2 和 9 8 这样的值至少要以 1
  • 如何在Python中绘制“Trace Explorer”?

    我需要重新创建一个情节 踪迹浏览器 https www bupar net trace explorer html与下面在 R 中创建的类似 我希望使用 matplotlib 但找不到任何有关如何执行这样的跟踪资源管理器的示例或参考 有人能
  • 缩放插图中不同的 x 和 y 比例,matplotlib

    我正在尝试使用 matplotlib 制作插图 目前我有类似最后一个答案的内容如何缩放图像的一部分并插入到 matplotlib 中的同一图中 https stackoverflow com questions 13583153 how t
  • 如何在matplotlib python中在白色背景上显示不同随机颜色的对象?

    我有一个图像 其中有标有数字的对象 例如属于对象 1 的所有像素的值为 1 等等 图像的其余部分为零 我想看到每个对象都具有不同的随机颜色和白色背景 我尝试过几种颜色贴图 如灰色 黑色等 但没有一个满足要求 因为它们按顺序将对象从暗到亮着色
  • 绘制到图像对象

    我可以保存一个图imshow 因为它返回一个图像对象 如下所示 image plt imshow list interpolation None 后来我想创建其中许多图像的动画 将其保存在列表中并将其渲染为视频 如果这种方法很愚蠢 请告诉我
  • 在 x 轴上操作日期 Pandas Matplotlib

    我有一组非常简单的数据 如下所示 我正在寻找一种方法来绘制此堆积条形图并格式化 x 轴 日期 使其从 1996 年 31 月 12 日开始 到 2016 年 31 月 12 日结束 增量为 365 天 我编写的代码绘制了每个日期 因此 x
  • 尽管 ioff() 和 matplotlib.use('Agg'),Pyplot“无法连接到 X 服务器 localhost:10.0”

    我有一段代码 它被不同的函数调用 为我执行一些计算 然后将输出绘制到文件中 鉴于整个脚本可能需要一段时间才能运行更大的数据集 并且由于我可能想在给定时间分析多个数据集 所以我开始它screen然后断开连接并关闭我的腻子会话 并在第二天再检查
  • 如何在刻度标签和轴之间添加空间

    我已成功增加刻度标签的字体 但现在它们距离轴太近了 我想在刻度标签和轴之间添加一点呼吸空间 如果您不想全局更改间距 通过编辑 rcParams 并且想要更简洁的方法 请尝试以下操作 ax tick params axis both whic
  • 如何将交互式 matplotlib 图形插入 tkinter 画布

    我正在尝试将交互式 matplotlib 图形 具有滑块 重置按钮和单选按钮的图形 放入 tkinter Canvas 中 我已成功添加非交互式图表 但当它变为交互式时找不到问题 我尝试将所有内容更改为使用 matplotlib Figur

随机推荐