2017-02-11 15 views
1

Возможно ли в python-pptx окрасить определенный бар на гистограмме, отличной от других? Мое намерение состоит в том, чтобы покрасить планку на основе значений. По умолчанию все синим цветом, но если значение ниже определенного порога, панель окрашена в красный цвет.Конкретная диаграмма цвета В Python PPTX

Ниже мой текущий код со всеми барами цветные сине-иш, КЗС (65.105.225)

# HUMIDITY CHART 
    chart_data = ChartData()    
    chart_data.categories = list(m.columns) 

    chart_data.add_series('Humidity', list(m.loc[svc,'Humidity']), 3) 
    graphic_frame = s.placeholders[14].insert_chart(XL_CHART_TYPE.COLUMN_CLUSTERED, chart_data) 
    chart = graphic_frame.chart 

    plot = chart.plots[0] 
    plot.has_data_labels = True 
    plot.overlap = 0 
    plot.gap_width = 30 
    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.series[0].fill.solid() 
    chart.series[0].fill.fore_color.rgb = RGBColor(65,105,225) 

ответ

1

Я не проверял, но я считаю, что это будет работать:

bar_idx = the_offset_of_the_bar_I_want_to_set_to_a_different_color 
point = series.points[bar_idx] # a (data) point in a bar chart is a bar 
fill = point.format.fill 
fill.solid() 
fill.fore_color.rgb = RGBColor(65, 105, 225) 

Там в пробел в документации для series.points, поэтому вы, вероятно, этого не нашли.

Дайте нам знать, как вы идете :)

+0

Спасибо, но я получил либо AttributeError: объект «BarSeries» не имеет атрибута «точки», или AttributeError: объект «SeriesCollection» не имеет атрибута «точки» в моем различном пытается. – idazuwaika

+0

Пробовал обе точки = chart.series.points [bar_idx] и point = chart.series [0] .points [bar_idx] – idazuwaika

+0

Какую версию 'python-pptx' вы используете? Похоже, пришло время для обновления. У BarSeries должно быть свойство '.points'. – scanny