如何在图表中设置列颜色和距离

How to set column colors and distance in chart

1)如何为柱形图中的每个系列设置颜色,如下所示? 2) 是否存在设置列之间的距离及其宽度的方法?

下面是代码示例

from pptx import Presentation 
from   pptx.chart.data import ChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.util import Inches 
# create presentation with 1 slide ------ 
prs = Presentation() 
slide = prs.slides.add_slide(prs.slide_layouts[5]) # define chart data --------------------- 
chart_data = ChartData()
chart_data.categories = ['East', 'West', 'Midwest'] 
chart_data.add_series('Q1 Sales', (19.2, 21.4, 16.7)) 
chart_data.add_series('Q2 Sales', (22.3, 28.6, 15.2)) 
chart_data.add_series('Q3 Sales', (20.4, 26.3, 14.2))
graphic_frame = slide.shapes.add_chart( XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data ) 
chart = graphic_frame.chart

在 PowerPoint 中,默认情况下,分配给图表中每个系列的颜色依次为主题颜色强调 1 到强调 6。

通常,确定图表颜色的最佳策略是在您使用 Presentation(...) 打开的 "base" 或 "template" 演示文稿中更改这些主题强调色。

但是,至少对于某些图表类型,可以为各个数据点(条形图、折线图、饼图等)分配特定颜色。

from pptx import Presentation 
from pptx.chart.data import ChartData
from pptx.dml.color import RGBColor
from pptx.enum.chart import XL_CHART_TYPE
from pptx.util import Inches 

prs = Presentation() 
slide = prs.slides.add_slide(prs.slide_layouts[5])
chart_data = ChartData()
chart_data.categories = ['East', 'West', 'Midwest'] 
chart_data.add_series('Q1 Sales', (19.2, 21.4, 16.7)) 
chart_data.add_series('Q2 Sales', (22.3, 28.6, 15.2)) 
chart_data.add_series('Q3 Sales', (20.4, 26.3, 14.2))
chart = slide.shapes.add_chart(
    XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data
).chart 

points = chart.plots[0].series[0].points
for point in points:
    fill = point.format.fill
    fill.solid()
    fill.fore_color.rgb = RGBColor(255, 0, 0)

柱形图中的柱宽自动设置为填充可用 space。

条形图(包括柱形图,如此处)有一个 .gap_width() 方法,允许指定条形 "clusters" 之间的间隙。还有一个 .overlap() 方法允许指定集群中各个柱之间的间隙。这确实是第二个问题,所以我在这里只提供 link。如果您想要更完整的答案,请post一个单独的问题。
http://python-pptx.readthedocs.io/en/latest/api/chart.html#pptx.chart.plot.BarPlot.gap_width