Установка направления тени 3D pyplot - PullRequest
0 голосов
/ 11 мая 2018

В matplotlib bar3d (), есть ли способ выбрать, на какую грань падает тень?

Я хотел сохранить тень для лучшей перспективы, однако верхняя часть полос всегда затенена.Это затрудняет просмотр текста сверху.

Есть ли способ изменить местоположение оттенков, например, поменять местами затененную / не затененную область?Я выбрал опцию LightSource, но, похоже, она применима к карте цветов и не совсем понятно, как я могу использовать ее с bar3d.

Ваша помощь приветствуется.Example Plot

1 Ответ

0 голосов
/ 24 мая 2018

Я не нашел полного решения, но есть способ обойти его.

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

Например, Это оригинальный вектор для назначения цвета, который с shade = "True" дает рисунок выше:

cs0=['lightgrey','w','#FF8000','w','#66CD00','w',
'w','lightgrey','w','#FF8000','w','#66CD00',
'#FF8000','w','lightgrey','w','#6495ED','w',
'w','#FF8000','w','lightgrey','w','#6495ED',
'#66CD00','w','#6495ED','w','lightgrey','w',
'w','#66CD00','w','#6495ED','w','lightgrey']

Теперь я должен изменить его на вектор, в 6 раз превышающий длину, и каждые 6 элементов подряд описывают 1 полосу для 6 граней (см. Документ). В частности, я хочу, чтобы тень падала только на правую сторону столбцов с этого угла обзора, поэтому я могу редактировать только три соответствующих блока, а затем соединить их в один вектор, который выглядит следующим образом:

cs1=['lightgrey','w','#FF8000','w','#66CD00','w',
'w','lightgrey','w','#FF8000','w','#66CD00',
'#FF8000','w','lightgrey','w','#6495ED','w',
'w','#FF8000','w','lightgrey','w','#6495ED',
'#66CD00','w','#6495ED','w','lightgrey','w',
'w','#66CD00','w','#6495ED','w','lightgrey']

#top
cs2=['lightgrey','w','#FF8000','w','#66CD00','w',
'w','lightgrey','w','#FF8000','w','#66CD00',
'#FF8000','w','lightgrey','w','#6495ED','w',
'w','#FF8000','w','lightgrey','w','#6495ED',
'#66CD00','w','#6495ED','w','lightgrey','w',
'w','#66CD00','w','#6495ED','w','lightgrey']

# left
cs3=['lightgrey','w','#FF8000','w','#66CD00','w',
'w','lightgrey','w','#FF8000','w','#66CD00',
'#FF8000','w','lightgrey','w','#6495ED','w',
'w','#FF8000','w','lightgrey','w','#6495ED',
'#66CD00','w','#6495ED','w','lightgrey','w',
'w','#66CD00','w','#6495ED','w','lightgrey']

cs4=['lightgrey','w','#FF8000','w','#66CD00','w',
'w','lightgrey','w','#FF8000','w','#66CD00',
'#FF8000','w','lightgrey','w','#6495ED','w',
'w','#FF8000','w','lightgrey','w','#6495ED',
'#66CD00','w','#6495ED','w','lightgrey','w',
'w','#66CD00','w','#6495ED','w','lightgrey']

cs5=['lightgrey','w','#FF8000','w','#66CD00','w',
'w','lightgrey','w','#FF8000','w','#66CD00',
'#FF8000','w','lightgrey','w','#6495ED','w',
'w','#FF8000','w','lightgrey','w','#6495ED',
'#66CD00','w','#6495ED','w','lightgrey','w',
'w','#66CD00','w','#6495ED','w','lightgrey']

# right
cs6=['grey','w','#CD3700','w','#458B00','w',
'w','grey','w','#CD3700','w','#458B00',
'#CD3700','w','grey','w','#104E8B','w',
'w','#CD3700','w','grey','w','#104E8B',
'#458B00','w','#104E8B','w','grey','w',
'w','#458B00','w','#104E8B','w','grey']

cs=cs0*6

cs[0::6]=cs1
cs[1::6]=cs2
cs[2::6]=cs3
cs[3::6]=cs4
cs[4::6]=cs5
cs[5::6]=cs6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...