小编Mat*_*all的帖子

'MatplotlibDeprecationWarning' - 尝试绘制直方图时发出警告

我试图用它matplotlib来绘制直方图,但不断遇到此错误:

MatplotlibDeprecationWarning: The resize_event function was deprecated in Matplotlib 3.6 and will be removed two minor releases later. Use callbacks.process('resize_event', ResizeEvent(...)) instead.

这是我的代码;也欢迎有关如何清理逻辑表达式的反馈。

lower_quartile = df['2020 Population'].quantile(0.25)
mid_quartile = df['2020 Population'].quantile(0.5)
upper_quartile = df['2020 Population'].quantile(0.75)

new_data = df.loc[df['2020 Population'] > lower_quartile]

final_2020_range = new_data.loc[df['2020 Population'] < upper_quartile]

check = final_2020_range['2020 Population']

plt.hist(check)
Run Code Online (Sandbox Code Playgroud)

python matplotlib pandas

8
推荐指数
1
解决办法
1万
查看次数

在 Python 中将带有 +00:00 的字符串转换为日期时间

我不知道如何将这个强转换为日期时间对象。这是我尝试过的:

import datetime
date_time_str = "2021-07-28 11:19:36.824150+00:00"
date_time_obj = datetime.datetime.strptime(date_time_str, '%y-%m-%d %H:%M:%S.%f%z')
Run Code Online (Sandbox Code Playgroud)

然而,我不断得到

ValueError:时间数据“2021-07-28 11:19:36.824150+00:00”与格式不匹配。

正确的格式是什么?

python formatting timestamp

4
推荐指数
1
解决办法
5748
查看次数

导入 matplotlib 导致“int() 参数必须是字符串”错误

我是Python新手。几天前我安装了Anaconda和PyCharm(在D盘),我正在尝试使用该matplotlib包来绘制一张图片。当我单击“运行”时,出现以下错误:

Traceback (most recent call last):
  File "G:\onedrive\OneDrive - mail.dlut.edu.cn\PyCharm\shock wave\P6.py", line 7, in <module>
    import matplotlib.pyplot as plt
  File "D:\anaconda3\lib\site-packages\matplotlib\pyplot.py", line 2230, in <module>
    switch_backend(rcParams["backend"])
  File "D:\anaconda3\lib\site-packages\matplotlib\__init__.py", line 672, in __getitem__
    plt.switch_backend(rcsetup._auto_backend_sentinel)
  File "D:\anaconda3\lib\site-packages\matplotlib\pyplot.py", line 247, in switch_backend
    switch_backend(candidate)
  File "D:\anaconda3\lib\site-packages\matplotlib\pyplot.py", line 267, in switch_backend
    class backend_mod(matplotlib.backend_bases._Backend):
  File "D:\anaconda3\lib\site-packages\matplotlib\pyplot.py", line 268, in backend_mod
    locals().update(vars(importlib.import_module(backend_name)))
  File "D:\anaconda3\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "D:\anaconda3\lib\site-packages\matplotlib\backends\backend_qtagg.py", line 12, in <module>
    from .backend_qt import (
  File "D:\anaconda3\lib\site-packages\matplotlib\backends\backend_qt.py", line …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

4
推荐指数
1
解决办法
3631
查看次数

使用 NumPy 的 Mittag-Leffler 函数的不稳定性

在尝试在 Wolfram MathWorld 上重现情节并尝试帮助解决这个问题时,我遇到了一些我不明白的数值不稳定问题:

import numpy as np
import matplotlib.pyplot as plt
from scipy.special import gamma

def MLf(z, a):
    """Mittag-Leffler function
    """
    k = np.arange(100).reshape(-1, 1)
    E = z**k / gamma(a*k + 1)
    return np.sum(E, axis=0)

x = np.arange(-50, 10, 0.1)

plt.figure(figsize=(10,5))
for i in range(5):
    plt.plot(x, MLf(x, i), label="alpha = "+str(i))
plt.legend()
plt.ylim(-5, 5); plt.xlim(-55, 15); plt.grid()
Run Code Online (Sandbox Code Playgroud)

您可以在橙色线中最好地看到不稳定性a = 1,其中 ,从大约 开始,但(蓝线)也x = -35存在问题。a = 0改变总和项的数量(即j)会改变x …

python numpy

3
推荐指数
1
解决办法
1699
查看次数

如何调整 xarray 图中的 Matplotlib 颜色条范围?

我有一个看起来像这样的情节

伪彩色贴图

我无法理解如何手动更改或设置颜色条的数据值范围。我想根据图中显示的数据值尝试范围,并将颜色条更改为 (-4,4)。我看到plt.clim,vminvmax是可能使用的函数。

这是我的代码:

import cdsapi
import xarray as xr
import matplotlib.pyplot as plt
import numpy as np
import cartopy.crs as ccrs
# Also requires cfgrib library.

c = cdsapi.Client()

url = c.retrieve(
    'reanalysis-era5-single-levels-monthly-means',
    {
        'product_type': 'monthly_averaged_reanalysis',
        'format': 'grib',
        'variable': ['100m_u_component_of_wind','100m_v_component_of_wind'],
        'year': ['2006','2007','2008','2009','2010','2011','2012','2013','2014','2015','2016','2017','2018','2019','2020','2021'],
        'month': ['01','02','03','04','05','06','07','08','09','10','11','12'],
        'time': '00:00',
        'grid': [0.25, 0.25],
        'area': [70.00, -180.00, -40.00, 180.00],
    },
    "C:\\Users\\U321103\\.spyder-py3\\ERA5_MAPPING\\100m_wind_U_V.grib")
path = "C:\\Users\\U321103\\.spyder-py3\\ERA5_MAPPING\\100m_wind_U_V.grib"
ds = xr.load_dataset(path, engine='cfgrib')

wind_abs = np.sqrt(ds.u100**2 + ds.v100**2)
monthly_means = wind_abs.mean(dim='time')
wind_abs_clim = …
Run Code Online (Sandbox Code Playgroud)

python matplotlib colorbar python-xarray

3
推荐指数
1
解决办法
6566
查看次数

用 NaN 随机替换 10% 的数据帧?

我有一个随机生成的 10*10 数据集,我需要用 NaN 随机替换数据集的 10%。

import pandas as pd
import numpy as np

Dataset = pd.DataFrame(np.random.randint(0, 100, size=(10, 10)))
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

3
推荐指数
1
解决办法
1430
查看次数

在Python中创建一个类似网络的图形桁架

我想创建桁架的图形。我有两个清单;给出了条形编号以及构成它们的节点,它看起来像这样:

\n
elements = [[1, 1, 2], [2, 2, 3], [3, 3, 4], [4, 4, 5], [5, 5, 1], [6, 1, 4], [7, 2, 4], [8, 4, 6], [9, 6, 5]]\n
Run Code Online (Sandbox Code Playgroud)\n

例如,元素一由节点 1 和节点 2 组成。另一个数据集给出节点及其在 2D 平面中的坐标。它看起来像这样:

\n
nodes= [[1.0, 0.0, 1.2], [2.0, -1.5, 1.2], [3.0, -1.5, 0.0], [4.0, 0.0, 0.0], [5.0, 1.5, 1.2], [6.0, 1.5, 0.0]]\n
Run Code Online (Sandbox Code Playgroud)\n

例如,节点 1 的坐标为 (0.0, 1.2)。

\n

我想使用上面的列表通过 pyplot 重新创建以下图形。其中 A 为 1.5m,B 为 1.2m。

\n

所需图像的示例

\n

我想做这样的事情:

\n
def draw(nodes):\n …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

2
推荐指数
1
解决办法
269
查看次数

使用 python numpy 创建霓虹灯

我正在尝试使用源图像创建霓虹灯效果。我包含了三张图片:来源、我当前的尝试和目标。该程序获取图像,找到白边,并计算每个像素到最近的白边的距离(这些部分都工作正常);从那里开始,我正在努力寻找正确的饱和度和值参数来创建霓虹灯。

从目标图像来看,我需要做的基本上是使白边缘的饱和度为 0,然后随着距离边缘的距离显着增加;对于值,我需要它在白边为 1,然后急剧减小。我无法找出操纵 distance_image (它保存每个像素与最近白边的距离)的最佳方法,例如通过饱和度和值实现这两个结果。

from PIL import Image
import cv2
import numpy as np
from scipy.ndimage import binary_erosion
from scipy.spatial import KDTree

def find_closest_distance(img):
    white_pixel_points = np.array(np.where(img))
    tree = KDTree(white_pixel_points.T)
    img_meshgrid = np.array(np.meshgrid(np.arange(img.shape[0]),
                                        np.arange(img.shape[1]))).T
    distances, _ = tree.query(img_meshgrid)
    return distances

def find_edges(img):
    img_np = np.array(img)
    kernel = np.ones((3,3))
    return img_np - binary_erosion(img_np, kernel)*255

img = Image.open('a.png').convert('L')
edge_image = find_edges(img)
distance_image = find_closest_distance(edge_image)
max_dist = np.max(distance_image)
distance_image = distance_image / max_dist

hue = np.full(distance_image.shape, 0.44*180)
saturation = distance_image * …
Run Code Online (Sandbox Code Playgroud)

python arrays opencv numpy image-processing

2
推荐指数
1
解决办法
871
查看次数