Question: I have a big sorted list and some of it is important, I want to visualize the position of these important elements.

```
RandomSeed[1234];
red = RandomInteger[10000, 100];(*important elements*)
point = Sort@RandomInteger[10000, 1000];(*all elements*)
pointColor = If[MemberQ[red, #], Style[#, Red], #] & /@ point;
ListPlot[pointColor]

```

[![enter image description here](https://i.stack.imgur.com/yqfaR.png)](https://i.stack.imgur.com/yqfaR.png)

I try some ways fails such as 

* `ListPlot[pointColor, PlotStyle -> RGBColor[0, 0, 1, 0.04]]`
* `pointColor = If[MemberQ[red, #], Style[#, Red, Thick], #] & /@ point;
ListPlot[pointColor]`

but only this code:

```
ListPlot[pointColor, PlotStyle -> Blue] /. 
 RGBColor[0, 0, 1] -> RGBColor[0, 0, 1, 0.04]

```

[![enter image description here](https://i.stack.imgur.com/ZlZHN.png)](https://i.stack.imgur.com/ZlZHN.png)

So what the better way to visualize these important elements?

Answer: 
```
pointColor = If[MemberQ[red, #], Style[#, Opacity[1, Red], PointSize[Medium]], #]& /@ point;

ListPlot[pointColor, PlotStyle -> RGBColor[0, 0, 1, 0.04]]

```

[![enter image description here](https://i.stack.imgur.com/2ARAT.png)](https://i.stack.imgur.com/2ARAT.png)
A bit of a workaround, but if you don't have to generate random numbers and you already have the correct lists it would work better than trying to apply a sort of mask/style to one list: keeping the two lists separate before plotting is probably easier. 
You could also remove the important elements from the total list if you don't want to double plot them.

```
Position[point, #] & /@ red;
pos = Flatten[Select[%, UnsameQ[#, {}] &]];

important = Transpose[{pos, point[[pos]]}];

Show[
 ListPlot[point],
 ListPlot[important, PlotStyle -> Red]
 ]

```

> 
> [![enter image description here](https://i.stack.imgur.com/6tQKH.png)](https://i.stack.imgur.com/6tQKH.png)
> 
> 
>