@@ -1189,8 +1189,25 @@ def test_get_under_over_bad():
11891189
11901190def test_colormap_alpha_array ():
11911191 cmap = plt .get_cmap ('viridis' )
1192+ vals = [- 1 , 0.5 , 2 ] # under, valid, over
11921193 with pytest .raises (ValueError , match = "alpha is array-like but" ):
1193- cmap ([ 1 , 2 , 3 ] , alpha = [1 , 1 , 1 , 1 ])
1194- alpha = [0.1 , 0.2 , 0.3 ]
1195- c = cmap ([ 1 , 2 , 3 ] , alpha = alpha )
1194+ cmap (vals , alpha = [1 , 1 , 1 , 1 ])
1195+ alpha = np . array ( [0.1 , 0.2 , 0.3 ])
1196+ c = cmap (vals , alpha = alpha )
11961197 assert_array_equal (c [:, - 1 ], alpha )
1198+ c = cmap (vals , alpha = alpha , bytes = True )
1199+ assert_array_equal (c [:, - 1 ], (alpha * 255 ).astype (np .uint8 ))
1200+
1201+
1202+ def test_colormap_bad_data_with_alpha ():
1203+ cmap = plt .get_cmap ('viridis' )
1204+ c = cmap (np .nan , alpha = 0.5 )
1205+ assert c == (0 , 0 , 0 , 0 )
1206+ c = cmap ([0.5 , np .nan ], alpha = 0.5 )
1207+ assert_array_equal (c [1 ], (0 , 0 , 0 , 0 ))
1208+ c = cmap ([0.5 , np .nan ], alpha = [0.1 , 0.2 ])
1209+ assert_array_equal (c [1 ], (0 , 0 , 0 , 0 ))
1210+ c = cmap ([[np .nan , 0.5 ], [0 , 0 ]], alpha = 0.5 )
1211+ assert_array_equal (c [0 , 0 ], (0 , 0 , 0 , 0 ))
1212+ c = cmap ([[np .nan , 0.5 ], [0 , 0 ]], alpha = np .full ((2 , 2 ), 0.5 ))
1213+ assert_array_equal (c [0 , 0 ], (0 , 0 , 0 , 0 ))
0 commit comments