1005x132589 像素的图像尺寸太大.每个方向必须小于2^16 [英] Image size of 1005x132589 pixels is too large. It must be less than 2^16 in each direction

查看:571
本文介绍了1005x132589 像素的图像尺寸太大.每个方向必须小于2^16的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 matplotlib.pyplot 从数据框中绘制图形.

I am using matplotlib.pyplot to plot a graph from a Dataframe.

我想在每个矩形上显示条的高度,并且正在使用 Text().为了标准化 y 轴,我记录了日志.下面是我的代码,我收到错误

I want to show the height of the bar upon each rectangle and am using Text(). For normalising the y-axis, I have taken the log. Below is my code, I am getting error

1005x132589 像素的图像尺寸太大.每个方向必须小于2^16

Image size of 1005x132589 pixels is too large. It must be less than 2^16 in each direction

当我不使用 plt.yscale('log') 时,代码工作正常.

When I am not using plt.yscale('log') then the code is working fine.

根据一些建议,我也重新启动了内核,但仍然出现此问题.欢迎对此提出任何建议.

According to some suggestions, I have restarted my kernel too, but still getting this issue. Any suggestions regarding this is welcomed.

我的代码:

# data collected to list. 
list_alarms = df_region.alarmName
# list_east = df_region.EAST
list_west = df_region.WEST
list_north = df_region.NORTH
list_south = df_region.SOUTH


# X-ticks customization
N = len(list_alarms)
xpos = np.arange(N)

# this json file is used to update the style of the plot. 
s = json.load(open('style.json'))    
rcParams.update(s)

# Graph customize
plt.rcParams['figure.figsize'] = (15,8)
plt.xlabel('AlarmNames at different Regions')
plt.ylabel('Frequency for alarms in MNG-PAN devices')
plt.title('Alarm Generated by MNG-PAN Device at different Regions')
plt.xticks(xpos, list_alarms, rotation = 280)

# bar1 = plt.bar(xpos - 0.3,list_east, width = 0.2, label = 'EAST', color = '#3154C8')
bar2 = plt.bar(xpos - 0.1, list_west, label = 'WEST', color = '#FF9633')
bar3 = plt.bar(xpos + 0.1, list_north, label = 'NORTH', color ='#12B794')
bar4 = plt.bar(xpos + 0.3, list_south, label = 'SOUTH', color ='#EF6FE3')
plt.yscale('log')
plt.legend()

def autolabel(rects):
    for rect in rects:
        height = rect.get_height()
        if height < 10000:
            plt.text(rect.get_x() + rect.get_width()/2., 1.05*height, 
                 '%d'%int(height),
                 ha = 'center', va = 'bottom', rotation = 90, 
    fontsize=9)


# # autolabel(bar1)
autolabel(bar2)
autolabel(bar3)
autolabel(bar4)

plt.show()

我正在使用 Jupyter Notebook、Pandas、Python3.

I am using Jupyter Notebook, Pandas, Python3.

推荐答案

autolabel 定义中的 plt.text 行检查您的位置变量.我遇到了同样的问题,我发现我给 plt.text 函数的 y 变量与我的绘图数据集的值相比太大了.

Check your location variables at plt.text line in autolabel definition. I had the same problem and I found that the y variable I gave to plt.text function was too large compared to the value of my dataset of plot.

这篇关于1005x132589 像素的图像尺寸太大.每个方向必须小于2^16的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆