python绘制折线图怎么样填充空白颜色_python – 填充轮廓图顶部的绘图点增加了大量空白...

我有以下Python代码,我用它来绘制填充等高线图:

def plot_polar_contour(values, azimuths, zeniths):

theta = np.radians(azimuths)

zeniths = np.array(zeniths)

values = np.array(values)

values = values.reshape(len(azimuths), len(zeniths))

r, theta = np.meshgrid(zeniths, np.radians(azimuths))

fig, ax = subplots(subplot_kw=dict(projection='polar'))

ax.set_theta_zero_location("N")

ax.set_theta_direction(-1)

cax = ax.contourf(theta, r, values, 30)

autumn()

cb = fig.colorbar(cax)

cb.set_label("Pixel reflectance")

show()

这给了我一个情节:

但是,当我在show()之前添加行ax.plot(0,30,’p’)时,我得到以下内容:

似乎只添加一个点(在原始轴范围内)就会在半径轴上拧紧轴范围.

这是设计,还是这个bug?你有什么建议去修理它?我是否需要手动调整轴范围,或者是否有办法停止额外的绘图命令?

解决方法:

如果未明确指定轴自动缩放模式,则绘图将使用“松散”自动缩放,而contourf将使用“紧密”自动缩放.

非极轴也会发生同样的事情.例如.

import matplotlib.pyplot as plt

import numpy as np

plt.imshow(np.random.random((10,10)))

plt.plot([7], [7], 'ro')

plt.show()

你有很多选择.

>在代码中的某个位置显式调用ax.axis(‘image’)或ax.axis(‘tight’).

>传递scalex = False和scaley = False作为绘图的关键字参数.

>手动设置轴限制.

最简单,最易读的只是显式调用ax.axis(‘tight’),i.m.o.

标签:python,matplotlib,plot

来源: https://codeday.me/bug/20190621/1250990.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用PIL库在Python填充周围的颜色,可以使用以下步骤: 1. 导入PIL库: ```python from PIL import Image ``` 2. 打开要填充像: ```python img = Image.open('image.jpg') ``` 3. 将像转换为RGB模式: ```python img = img.convert('RGB') ``` 4. 获取像的宽度和高度: ```python width, height = img.size ``` 5. 遍历像的每个像素点,如果像素点是空白(即颜色为白色),则使用附近的颜色进行填充。可以定义一个函数来获取周围像素点的颜色: ```python def get_average_color(x, y, n, img): """ 获取周围n个像素点的平均颜色 """ r, g, b = 0, 0, 0 count = 0 for xi in range(x-n, x+n+1): for yi in range(y-n, y+n+1): if xi >= 0 and yi >= 0 and xi < img.size[0] and yi < img.size[1]: pixel = img.getpixel((xi, yi)) r += pixel[0] g += pixel[1] b += pixel[2] count += 1 return (int(r/count), int(g/count), int(b/count)) ``` 6. 遍历每个像素点并进行填充: ```python n = 2 # 周围n个像素点 for x in range(width): for y in range(height): pixel = img.getpixel((x, y)) if pixel == (255, 255, 255): # 如果是空白,则填充周围的颜色 color = get_average_color(x, y, n, img) img.putpixel((x, y), color) ``` 7. 保存填充后的像: ```python img.save('filled_image.jpg') ``` 完整的代码示例: ```python from PIL import Image def get_average_color(x, y, n, img): """ 获取周围n个像素点的平均颜色 """ r, g, b = 0, 0, 0 count = 0 for xi in range(x-n, x+n+1): for yi in range(y-n, y+n+1): if xi >= 0 and yi >= 0 and xi < img.size[0] and yi < img.size[1]: pixel = img.getpixel((xi, yi)) r += pixel[0] g += pixel[1] b += pixel[2] count += 1 return (int(r/count), int(g/count), int(b/count)) img = Image.open('image.jpg') img = img.convert('RGB') width, height = img.size n = 2 # 周围n个像素点 for x in range(width): for y in range(height): pixel = img.getpixel((x, y)) if pixel == (255, 255, 255): # 如果是空白,则填充周围的颜色 color = get_average_color(x, y, n, img) img.putpixel((x, y), color) img.save('filled_image.jpg') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值