От png к сквозному клипарту на питоне - PullRequest
0 голосов
/ 23 мая 2018

Мне было интересно, есть ли в python простой способ сделать весь белый (или другой цвет) на ваших графиках полностью просеянным (НЕ альфа = ... материал) как в клипарте без использования фотошопа или другой программы.План состоит в том, чтобы иметь круговые диаграммы над изображением или чем-то еще.В приведенном ниже примере: я хотел бы, чтобы были видны только пироги, чтобы я мог видеть свой зеленый фон и смайлик. Возможно ли это? Или фотошоп, иллюстратор, ... нужен?enter image description here

sizes1=array([[0.00000000e+00, 0.00000000e+00, 1.89602446e+00, 0.00000000e+00,
    0.00000000e+00, 1.85701021e+00],
   [0.00000000e+00, 0.00000000e+00, 2.56880734e+00, 0.00000000e+00,
    0.00000000e+00, 5.57103064e+00],
   [0.00000000e+00, 0.00000000e+00, 4.43802243e+02, 0.00000000e+00,
    0.00000000e+00, 5.61745590e+01],
   [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
    0.00000000e+00, 6.29062210e+01],
   [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
    0.00000000e+00, 6.54596100e+01],
   [0.00000000e+00, 0.00000000e+00, 4.44036697e+02, 0.00000000e+00,
    0.00000000e+00, 0.00000000e+00],
   [0.00000000e+00, 1.29564193e+00, 4.45463812e+02, 0.00000000e+00,
    0.00000000e+00, 6.66202414e+01],
   [0.00000000e+00, 1.74322733e+01, 4.73985729e+02, 0.00000000e+00,
    0.00000000e+00, 1.23491179e+02],
   [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
    0.00000000e+00, 0.00000000e+00],
   [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
    0.00000000e+00, 0.00000000e+00],
   [0.00000000e+00, 4.49941107e+01, 4.86381244e+02, 1.70394036e-02,
    9.60884354e+00, 1.36258124e+02],
   [0.00000000e+00, 2.41931684e+02, 5.22477064e+02, 3.25878594e-01,
    2.76360544e+01, 2.00092851e+02],
   [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
    0.00000000e+00, 0.00000000e+00],
   [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
    0.00000000e+00, 0.00000000e+00],
   [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
    0.00000000e+00, 0.00000000e+00]])
aantal=np.array([8.0434686 ,   11.17618795, 1848.21974756,    5.73626313,
      5.96910038, 1844.07101113,  185.63055502, 1982.84201146,
      0.        ,    0.        , 2045.39056332, 2248.55164648,
      0.        ,    0.        ,    0.       ])     
grootte=np.zeros(len(aantal))
for i in range (0,len(aantal)):
    if aantal[i]<50:
        grootte[i]=0.5
    elif 50<aantal[i]<1000:
        grootte[i]=0.8
    elif 1000<aantal[i]<2000:
        grootte[i]=1
    else: 
        grootte[i]=1.5

for i in range (0,len(sizes)): #with i timestep#len(Ypos1)

    a=sizes[i].argmax()
    explode=np.zeros(len(sizes[0]))
    explode[a] = 0.1# explode biggest slice

    plt.subplot(3,5,i+1)


    pie=plt.pie(sizes1[i], explode=explode, labels=None, colors=colors, counterclock=False,
    autopct='%1.1f%%', pctdistance=1.1,shadow=False, startangle=90, radius=grootte[i])#Names[0:len(sizes[0])]
plt.savefig("Pies.png")

Ответы [ 2 ]

0 голосов
/ 23 мая 2018
plt.savefig("Pies.png", transparent=True)
0 голосов
/ 23 мая 2018

После генерации изображения вы можете использовать python, чтобы все пиксели определенного цвета были прозрачными.В вашем примере изображения, если вы превратили все белые пиксели в прозрачные, это может привести к тому, что вы хотите.

Этот пост SO описывает один способ, которым это можно сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...