Контроль непрозрачности для наложения участков - PullRequest
5 голосов
/ 04 июля 2011

Учитывая два векторных графика и контурный график, как показано ниже

as = VectorPlot[{Cos[y], Sin[x] }, {x, -3, 3}, {y, -3, 3},
                 VectorScale -> Automatic, VectorColorFunction -> "Rainbow"
     ];
bs = StreamPlot[{Cos[y], Sin[x] }, {x, -3, 3}, {y, -3, 3},
                 VectorScale -> Automatic, StreamColorFunction -> "Rainbow"
     ];
cs = ContourPlot[Cos[x] + Sin[y], {x, -3, 3}, {y, -3, 3},
                 ColorFunction -> "BlueGreenYellow"
     ];
Show[cs, bs, as]

enter image description here

мы видим, что основная наложенная работа хорошо выполнена Show []. Но мой вопрос , как я могу контролировать непрозрачность графика контура фона cs? Кроме того, как я могу вставить цветовые схемы типа «BlueGreenYellow» в цветовую функцию, подобную следующей?

ContourPlot[Cos[x] + Sin[y], {x, -3, 3}, {y, -3, 3},
            ColorFunction -> (Directive[Opacity[#],Blue] &)
];

Ответы [ 2 ]

11 голосов
/ 20 августа 2011

Я не верю, что решение jmlopez является правильным, потому что векторы и рамка также частично прозрачны.Я считаю, что лучше вставить команду Opacity в объект Graphics, который сохранит непрозрачные векторы:

as = VectorPlot[{Cos[y], Sin[x]}, {x, -3, 3}, {y, -3, 3}, 
       VectorScale -> Automatic, VectorColorFunction -> "Rainbow"];
bs = StreamPlot[{Cos[y], Sin[x]}, {x, -3, 3}, {y, -3, 3}, 
       VectorScale -> Automatic, StreamColorFunction -> "Rainbow"];
cs = ContourPlot[Cos[x] + Sin[y], {x, -3, 3}, {y, -3, 3}, 
       ColorFunction -> "BlueGreenYellow"];

cs2 = MapAt[{Opacity[0.5], #} &, cs, 1];

Show[cs2, bs, as]

enter image description here


Второй вопросникогда не был адресован.Вы можете комбинировать непрозрачность и градиент цвета следующим образом:

ContourPlot[Cos[x] + Sin[y], {x, -3, 3}, {y, -3, 3}, 
  ColorFunction -> ({Opacity[#], ColorData["BlueGreenYellow"][#]} &)
]

enter image description here

7 голосов
/ 04 июля 2011

Вы можете попробовать использовать BaseStyle следующим образом:

cs = ContourPlot[Cos[x] + Sin[y], {x, -3, 3}, {y, -3, 3}, 
                 ColorFunction -> "BlueGreenYellow", 
                 BaseStyle -> Directive[Opacity[0.5]]
     ];

enter image description here

...