'操作数错误:使用Reportlab创建图表'

2024-04-20 08:30:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,我的任务是从一个文本文档中制作一个垂直条形图,我把x轴信息放到一个列表中,把数据也放到一个列表中。我遇到的问题是,当我试图输出图表时,我得到一个错误:TypeError:不支持的操作数类型-:'str'和'int'。我正在努力想办法解决这个错误。 我需要输入一个列表吗?还是列表的方式不对?你知道吗

这是我的密码:

from reportlab.graphics.shapes import Drawing
from reportlab.graphics.charts.barcharts import VerticalBarChart

ExifOutput = open('ExifOutput.txt', 'r')

ImageMakeContainer = []
Container = []
makeList = []
numberList = []

lineReader = ExifOutput.readlines()

for line in lineReader:
    if 'Image Make: ' in line:
        ImageMakeContainer.append(line[13:-2])

for item in set(ImageMakeContainer):
    Container.append(item + " " + str(ImageMakeContainer.count(item)))

print Container

for data in Container:

    [int(num) for num in data.split() if num.isdigit()]

    make = data[0:-(len(num) + 1)]

    makeList.append(make)
    numberList.append(num)

print numberList
print makeList

ExifOutput.close()

data = numberList
axis = makeList

graph = Drawing(400, 300)

chart = VerticalBarChart()
chart.width = 300
chart.height = 200
chart.x = 30
chart.y = 40
chart.data = data
chart.categoryAxis.categoryNames = axis
chart.valueAxis.valueMin = 0

graph.add(chart)
graph.save(fnRoot='TestGraph', formats=['png', 'pdf'])

希望我对你足够清楚。(打印报表只是检查列表的内容)

[编辑]打印输出如下:

['Apple 1', 'FUJIFILM 5', 'Samsung Techwin 1']
['1', '5', '1']
['Apple', 'FUJIFILM', 'Samsung Techwin']

Tags: in列表fordatacontainerlinechartitem
1条回答
网友
1楼 · 发布于 2024-04-20 08:30:39

要将Python int放入字符串中,只需将其放在backtickslike_this之间。例如

print three + `3`

您也可以使用格式来完成类似的事情,比如

print "three%d" % 3

相关问题 更多 >