2016-08-15 8 views
0

Я ищу способ доступа к позициям отдельных гистограмм, созданных библиотекой python-pptx. Я предполагаю, что отдельные бары считаются «фигурами» и имеют свойства слева, сверху, ширины, высоты. Мне уже удалось создать диаграммы, используя следующий код.Доступ к строкам букв в диаграммах в python-pptx

Как отдельные полосы на графике можно ссылаться, и их свойства доступны, как мне нужно делать более сложные диаграммы, т.е. со стрелками между линиями показаны в годовом исчислении рост и т.д.

Спасибо.

# CHART 
chart_data = ChartData() 
chart_data.categories = ['January', 'February', 'March', 'April'] 
chart_data.add_series('Revenue', monthly_revenue, 3) 
chart_data.add_series('Cost', monthly_cost, 3) 

graphic_frame = s.placeholders[10].insert_chart(XL_CHART_TYPE.COLUMN_CLUSTERED, chart_data) 
chart = graphic_frame.chart 

plot = chart.plots[0] 
plot.has_data_labels = True 
plot.overlap = -10 
data_labels = plot.data_labels 
data_labels.font.size = Pt(11) 
data_labels.font.color.rgb = RGBColor(0,0,0) 
data_labels.number_format = "#,##0" 

chart.value_axis.has_minor_gridlines = False 
chart.value_axis.has_major_gridlines = False 
chart.value_axis.tick_labels.font.size = Pt(12) 
chart.value_axis.tick_labels.number_format = "#,##0" 
chart.category_axis.tick_labels.font.size = Pt(12) 

chart.series[1].fill.solid() 
chart.series[1].fill.fore_color.rgb = RGBColor(192,80,77) 

ответ

0

Bars в таблице, не имеют индивидуальную позицию и информацию о размере, по крайней мере, не сохраняются в XML в .pptx файла.

Итак, короткий ответ: вы не можете напрямую делать то, что вы просите использовать python-pptx.

MS API, доступный, например, с использованием VBA, но также и с Iron Python, предоставляет Point.left, .top, .width и .height. Таким образом, вы можете что-то сделать в этой среде, если сможете переносить трудности. Обратите внимание, что такой код напрямую управляет экземпляром приложения PowerPoint и только в Windows, если я не ошибаюсь. Поэтому есть довольно большие проблемы с этим, если вы пытаетесь запустить его на стороне сервера.

Элементы диаграммы, такие как бары, не являются фигурами. Вся диаграмма - это автономный объект, содержащийся в форме так называемой «графической рамки», как и таблица. Сама диаграмма представляет собой объект DrawingML (в отличие от объекта PresentationML), словарь XML, используемый между Word, Excel и PowerPoint. Вот почему вы можете пересадить диаграмму между этими тремя. Во всяком случае, возможно, больше фона, чем вы хотели, но рассказ о том, что они обрабатываются совсем по-другому, чем говорят о прямоугольной форме, которая очень определенно имеет явное положение и размер.

+0

Спасибо scanny за подробное объяснение. Конечно, помогает с фундаментальным пониманием того, как все это работает. Что касается связанных вопросов с диаграммой, возможно ли иметь как бар, так и линейные графики на одном и том же графике? Я нашел это утверждение: «В большинстве графиков есть только один сюжет, а python-pptx еще не поддерживает создание многострочных диаграмм, но вы можете получить доступ к нескольким графикам на диаграмме, которая уже имеет их». правда? Есть ли обходные пути? – idazuwaika

+0

Я думаю, что это хороший отдельный вопрос. Если вы помечаете его «python-pptx», он будет проходить через мой канал. Короткий ответ заключается в том, что для этого потребуется копать и использовать некоторые внутренние элементы python-pptx. – scanny

 Смежные вопросы

  • Нет связанных вопросов^_^