我可以根据 "horizontal" 数据在 Openpyxl 中创建条形图(柱形图)吗?
Can I create a bar (column) chart in Openpyxl from "horizontal" data?
我一直在使用 this guide 作为我使用 openpyxl 创建图表的主要资源。那里的所有示例似乎都是以下形式:
页眉 1 页眉 2 页眉 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')
add_data()
采用 from_rows
参数,默认为 False
。
我一直在使用 this guide 作为我使用 openpyxl 创建图表的主要资源。那里的所有示例似乎都是以下形式:
页眉 1 页眉 2 页眉 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')
add_data()
采用 from_rows
参数,默认为 False
。