网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月04日漏签0天
mathematica吧 关注:19,841贴子:73,929
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 7回复贴,共1页
<<返回mathematica吧
>0< 加载中...

求助求问一个思路,这样的单变量边缘分布直方图怎么用mma画?

  • 只看楼主
  • 收藏

  • 回复
  • 朱颜辞镜花辞树39
  • 有待掌握
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我的思路是将直方图经ImageRotation旋转后,再通过GraphaGrid拼接在一起。
不知道是否存在内置的函数,能直接画出来这样的图?


  • 朱颜辞镜花辞树39
  • 有待掌握
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我知道这个怎么搞了。搞定后可以分享在这里。


2025-08-04 03:37:33
广告
不感兴趣
开通SVIP免广告
  • 朱颜辞镜花辞树39
  • 有待掌握
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
第一种Mathematica内置的函数,转自Stack Exchange
data = RandomReal[BinormalDistribution[{-1, 2}, {1, 1}, .8], 1000];
GraphicsColumn[
Table[DensityHistogram[data, {.2}, ColorFunction -> "DarkRainbow",
Method -> {"DistributionAxes" -> p}, ImageSize -> 500,
BaseStyle -> {FontFamily -> "Helvetica"},
LabelStyle -> Bold], {p, {True, "Histogram", "SmoothHistogram",
"BoxWhisker"}}]]


  • 朱颜辞镜花辞树39
  • 有待掌握
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
第二种,用Grid拼接
data = RandomVariate[BinormalDistribution[0.5], 1000];
edist = EstimatedDistribution[data,
BinormalDistribution[{\[Mu]1, \[Mu]2}, {\[Sigma]1, \[Sigma]2}, \
\[Rho]]]
fontsize = 20;
main = ListPlot[data, PlotRange -> {{-4, 4}, {-4, 4}}, Frame -> True,
PlotStyle -> PointSize[0.01],
FrameLabel -> {Style["Frequency deviation (\[Sigma])", fontsize,
FontFamily -> "Times"],
Style["Amplitude deviation (\[Sigma])", fontsize,
FontFamily -> "Times"]}, ImageSize -> {600, Automatic},
AspectRatio -> 1,
FrameStyle -> Directive[Black, Thick, FontFamily -> "Times"],
PlotTheme -> "Scientific",
FrameTicksStyle ->
Directive[FontSize -> 16, Thick, FontFamily -> "Times"],
ImagePadding -> {{All, None}, {All, None}}]
yhist = Show[
ParametricPlot[{PDF[MarginalDistribution[edist, 2], y], y}, {y, -4,
4}, PlotStyle -> Red],
Histogram[Transpose[data][[2]], Automatic, "PDF",
BarOrigin -> Left], FrameTicks -> {All, None, None, All},
Frame -> {True, True, True, True}, ImageSize -> {Automatic, 600},
PlotRange -> {All, {-4, 4}}, Axes -> None,
FrameLabel -> {Style["Probabilty density", fontsize,
FontFamily -> "Times"], None, None, None}, AspectRatio -> 3,
FrameStyle -> Directive[Black, Thick, FontFamily -> "Times"],
PlotTheme -> "Scientific",
FrameTicksStyle ->
Directive[FontSize -> 16, Thick, FontFamily -> "Times"],
ImagePadding -> {{1, All}, {All, None}}]
xhist = Show[
Plot[PDF[MarginalDistribution[edist, 1], x], {x, -4, 4},
PlotStyle -> Red],
Histogram[Transpose[data][[1]], Automatic, "PDF"], Axes -> None,
FrameTicks -> {None, All, All, None}, Frame -> True,
FrameLabel -> {None,
Style["Probabilty density", fontsize, FontFamily -> "Times"]},
ImageSize -> {600, Automatic}, AspectRatio -> 1/3,
FrameStyle -> Directive[Black, Thick, FontFamily -> "Times"],
PlotTheme -> "Scientific",
FrameTicksStyle ->
Directive[FontSize -> 16, Thick, FontFamily -> "Times"],
PlotRange -> {{-4, 4}, All}(*,ImagePadding->{{All,None},{None,All}}*)]
fig = Grid[{{xhist}, {main, yhist}}, Spacings -> {0, 0}]


  • 朱颜辞镜花辞树39
  • 有待掌握
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
第三种,用Inset。参考自Stack Exchange,本人略微修改。
Clear[customPlot]
fontsize = 15;
customPlot[data_, edist_, o___] :=
Block[{xmin, xmax, ymin, ymax, x, y, mainplot, xhist, yhist,
opts = Flatten[{o}]}, {x, y} = Transpose[data];
xhist = HistogramList[x, 50];
yhist = HistogramList[y, 50];
{xmin, xmax} = Through[{Min, Max}[First[xhist]]];
{ymin, ymax} = Through[{Min, Max}[First[yhist]]];
mainplot =
ListPlot[data, Frame -> {True, True, True, True}, Axes -> False,
FrameTicks -> Automatic, AspectRatio -> 1,
PlotRange -> {{xmin, xmax}, {ymin, ymax}},(*PlotRangePadding->
Scaled[0.02],*)PlotStyle -> PointSize[0.01],
FrameLabel -> {Style["Frequency deviation (\[Sigma])", fontsize,
FontFamily -> "Times"],
Style["Amplitude deviation (\[Sigma])", fontsize,
FontFamily -> "Times"]},
FrameStyle -> Directive[Black, Thick, FontFamily -> "Times"],
PlotTheme -> "Scientific",
FrameTicksStyle ->
Directive[FontSize -> fontsize, Thick, FontFamily -> "Times"],
FilterRules[opts, Options[ListPlot]], GridLines -> Automatic,
GridLinesStyle -> Directive[Gray, Dotted]];
xhist =
Show[Plot[PDF[MarginalDistribution[edist, 1], x], {x, xmin, xmax},
PlotStyle -> Red],
Histogram[x, {First[xhist]}, "PDF",
FilterRules[opts, Options[Histogram]]], Axes -> None,
Frame -> {{True, True}, {True, True}},
FrameTicks -> {{Automatic, None}, {None, Automatic}},
ImagePadding -> {{All, None}, {None, All}},
GridLines -> {None, None},
FrameLabel -> {None,
Style["Probabilty density", fontsize, FontFamily -> "Times"]},
ImageSize -> {600, Automatic}, AspectRatio -> 1/3,
FrameStyle -> Directive[Black, Thick, FontFamily -> "Times"],
PlotTheme -> "Scientific",
FrameTicksStyle ->
Directive[FontSize -> fontsize, Thick, FontFamily -> "Times"],
GridLinesStyle -> Directive[Gray, Dotted], PlotRange -> All];
yhist =
Show[ParametricPlot[{PDF[MarginalDistribution[edist, 1], y],
y}, {y, ymin, ymax}, PlotStyle -> Red],
Histogram[y, {First[yhist]}, "PDF", BarOrigin -> Left,
FilterRules[opts, Options[Histogram]]], Axes -> None,
Frame -> {{True, True}, {True, True}},
FrameTicks -> {{None, Automatic}, {Automatic, None}},
ImagePadding -> {{None, All}, {All, None}},
GridLines -> {None, None},
FrameLabel -> {Style["Probabilty density", fontsize,
FontFamily -> "Times"], None, None, None}, AspectRatio -> 3,
FrameStyle -> Directive[Black, Thick, FontFamily -> "Times"],
PlotTheme -> "Scientific",
FrameTicksStyle ->
Directive[FontSize -> fontsize, Thick, FontFamily -> "Times"],
GridLinesStyle -> Directive[Gray, Dotted]];
Graphics[{{Opacity[0], Point[{{-900, -900}, {300, 300}}]},
Inset[mainplot, {0, 0}, {Right, Top}, {-900, -900}],
Inset[xhist, {0, 0}, {Right, Bottom}, {-900, Automatic}],
Inset[yhist, {0, 0}, {Left, Top}, {Automatic, -900}]},
PlotRange -> {{-900, 300}, {-900, 300}},
FilterRules[opts, Options[Graphics]],
ImagePadding -> {{1, 1}, {1, 1}}, ImageSize -> 600]]
data = RandomVariate[BinormalDistribution[0.5], 1000];
edist = EstimatedDistribution[data,
BinormalDistribution[{\[Mu]1, \[Mu]2}, {\[Sigma]1, \[Sigma]2}, \
\[Rho]]];
fig = customPlot[data, edist]


  • 朱颜辞镜花辞树39
  • 有待掌握
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
因为要求字体等格式,所以加了很多额外的函数,发出来就很长了


  • 朱颜辞镜花辞树39
  • 有待掌握
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼




  • xzcyr
  • 吧主
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
stackexchange的相应链接:
mathematica.stackexchange.com/q/2984/1871


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 7回复贴,共1页
<<返回mathematica吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示