pygal.Bar()x_labels的列表理解

时间:2018-02-21 06:25:44

标签: python pygal

我正在使用pygal来模拟掷骰子。我想将其保存为np.delete文件。

svg

但是它给出了一个错误:

  

如果len(字符串)>索引和索引> 0:TypeError:类型' int'的对象   没有len()"

如果我评论列表理解线

import pygal
from die import Die


die_1 = Die()
die_2 = Die(10)
results = []

for roll_num in range(50000):
    result = die_1.roll() + die_2.roll()
    results.append(result)

frequencies = []
max_result = die_1.num_sides + die_2.num_sides

for value in range(2,max_result+1):
    frequency = results.count(value)
    frequencies.append(frequency)

hist = pygal.Bar()

hist.title = "Result of rolling a D6 and D10 50000 times"
hist.x_labels = [x for x in list(range(2,max_result+1))]
hist.x_title = "Result"
hist.y_title = "Frequency of Result"

hist.add('D6+D10', frequencies)
hist.render_to_file('different_dice.svg')

它会起作用。这个列表理解中有什么不正确的吗?

1 个答案:

答案 0 :(得分:0)

在字符串hist.x_labels = [x for x in list(range(2,max_result+1))]中,您不使用list,仅使用range(2,max_result+1)就足够了。

例如,在我的程序中使用

histogram.x_labels = [num for num in range(2, max_result + 1)]