我可以在Openpyxl中从"水平"创建一个条形图(列)图表。数据?

时间:2015-10-22 17:29:42

标签: python charts openpyxl

我一直使用this guide作为使用openpyxl创建图表的主要资源。所有示例似乎都是以下形式:

HEADER1 HEADER 2 HEADER 3
X1 Y11 Y12
X2 Y12 Y22
.....

因此,类别将是第一列,数据系列将是其他列。我想知道的是我们可以使用这样的数据吗?

X1 X2 X3 ...
Y11 Y12 Y13
Y21 Y22 Y23

似乎无论我设置的类别(在下面的代码中),openpyxl都试图告诉我我的数据是以第一种方式布局的。请注意,此代码被调用5次,并且图表的典型col / row值集为:

min_row = 3 max_row = 3 min_col = 6 max_col = 27

    if draw_charts == True:
        chart = BarChart()
        chart.type = "col"
        chart.style = 10
        chart.title = "Channel " + str(channel_name) + " Stdevs " + str(stdevs)
        chart.x_axis.title = 'Time Diff (s)'
        chart.y_axis.title = 'Counts'

        values = Reference(ws2, min_col = 6, min_row = 3 + index * 2, max_col = 5 + bins, max_row=3 + index * 2)
        categories = Reference(ws2, min_col=6, min_row = 2 + index * 2, max_col = 5 + bins, max_row=2 + index * 2)
        chart.add_data(values, titles_from_data=True)
        chart.set_categories(categories)
        ws2.add_chart(chart, num2col(col2num('A') + index * 6) + '22')

1 个答案:

答案 0 :(得分:2)

add_data()使用from_rows参数,默认值为False