Как я могу добавить разные цвета штриховки в barplot matplotlib? - PullRequest
1 голос
/ 25 октября 2019

Я хотел бы изменить цвет хеджирования в зависимости от группы, к которой принадлежат мои данные. Я обнаружил, что могу изменить цвет всего графика, и каким-то образом люди, кажется, могут делать то, что я хочу , но я действительно не понимаю, как реализовать это в моем гистограмме. В конечном счете, я хочу иметь разные миксы и сочетания цветных пятен и цветных люков, но это то, что я могу понять для себя. Это пример, украденный из другого ответа здесь на SO:

import numpy as np
import matplotlib.pyplot as plt
import plotly.express as px

# Juwairia's data:     
a = [4,-6,9]
b = [2,-7,1]
c = [3,3,1]
d = [4,0,-3]
data = np.array([a, b, c, d])

data_shape = np.shape(data)

# Take negative and positive data apart and cumulate
def get_cumulated_array(data, **kwargs):
    cum = data.clip(**kwargs)
    cum = np.cumsum(cum, axis=0)
    d = np.zeros(np.shape(data))
    d[1:] = cum[:-1]
    return d  

cumulated_data = get_cumulated_array(data, min=0)
cumulated_data_neg = get_cumulated_array(data, max=0)

# Re-merge negative and positive data.
row_mask = (data<0)
cumulated_data[row_mask] = cumulated_data_neg[row_mask]
data_stack = cumulated_data

cols = [ i for i in px.colors.qualitative.Light24]

fig = plt.figure()
ax = plt.subplot(111)
bars=[]

for i in np.arange(0, data_shape[0]):
    bars.append(ax.bar(np.arange(data_shape[1]), data[i], bottom=data_stack[i], color=cols[i],))
bars[0][1].set_hatch('\\')# make this dark red - HOW?
bars[1][2].set_hatch('\\')#make this dark green - HOW?

plt.show()

Работа с matplotlib 2.2.4 и Python 2.7 Большое спасибо!

1 Ответ

1 голос
/ 25 октября 2019

Согласно этот вопрос цвет штриховки изменяется в зависимости от цвета края. Ответ затем решает это путем построения графика дважды: один раз для цвета штриховки и один для цвета края.

...