用mathematics畫等高線圖扰肌,兩個函數(shù)如何有相同圖例,查了好久沒人提到熊杨,覺得有必要總結下曙旭。核心的思想很簡單,就是一個自動生成圖例晶府,然后colorpix屏幕取色桂躏,用取第一幅的圖例填充第二幅圖。
舉例:
1. 畫下面兩個函數(shù)的等高線圖
函數(shù)1 code:
ContourPlot[Sin[x]^2 + Sin[y]^2, {x, 1, 4}, {y, 1, 4},
Contours -> {0, 0.5, 1.0, 1.5}, ContourStyle -> {1, Dashed},
ColorFunction -> "Rainbow", PlotLegends -> Automatic,
FrameLabel -> {{y, None}, {x, Sin[x]^2 + Sin[y]^2}},
LabelStyle -> Directive[Black, 20]]
函數(shù)2 code:
ContourPlot[Sin[x]^2 + Cos[y], {x, 1, 4}, {y, 1, 4},
Contours -> {-0.5, 0, 0.5, 1.0, 1.5}, ContourStyle -> {1, Dashed},
ColorFunction -> "Rainbow", PlotLegends -> Automatic,
FrameTicksStyle -> 20,
FrameLabel -> {{y, None}, {x, Sin[x]^2 + Cos[y]}},
LabelStyle -> Directive[Black, 20]]
- 我們用ColorPix小軟件提取函數(shù)2的圖例RGB顏色川陆。
紅RGBColor[191, 29, 29] 橙RGBColor[230, 109, 47] 黃RGBColor[203, 184,
66] 綠RGBColor[128, 185, 116] 藍RGBColor[120, 27, 134] 紫RGBColor[75, 142, 193]
提取完后剂习,圖1ColorFunction 就不用 "Rainbow",改為對應顏色。
3. 更改后圖1Code:
ContourPlot[Sin[x]^2 + Sin[y]^2, {x, 1, 4}, {y, 1, 4},
Contours -> {0, 0.5, 1.0, 1.5}, ContourStyle -> {1, Dashed},
ContourShading -> {RGBColor[128/255, 185/255, 116/255],
RGBColor[203/255, 184/255, 66/255],
RGBColor[230/255, 109/255, 47/255],
RGBColor[191/255, 29/255, 29/255]}, PlotLegends -> Automatic,
FrameTicksStyle -> 20,
FrameLabel -> {{y, None}, {x, Sin[x]^2 + Sin[y]^2}},
LabelStyle -> Directive[Black, 20]]
好的鳞绕,兩幅圖可以共用1個圖例啦失仁!
總結以下:
1. colorpix取到的RGB在mathematics里要歸一,每個值/255.
2. 配色Rainbow不喜歡们何,可以選萄焦,內置好多種。
3.還是沒有滿意的垂蜗,嫌直男審美的楷扬,推薦個網(wǎng)站自己配色吧!