公告:本站正式转型为非交互式静态网站!
转型:本站将通过笔记和博客的形式继续为大家服务,关于 Mathematica 问答服务请移步至QQ群:365716997
联系:如有问题请联系QQ群管理员,或发送邮件至:lixuan.xyz@qq.com。
感谢:最后非常感谢大家多年来的支持与帮助!
参考《互联网跟帖评论服务管理规定》《中华人民共和国网络安全法》《网络信息内容生态治理规定》《互联网用户账号信息管理规定》

—— 2022-11-27

欢迎来到 Mathematica 问答社区

提问时请贴上文本代码

语法高亮:在编辑器中点击

被禁止的话题:广告破解

请阅读:《提问的智慧》

备用域名:mma.ooo

支持LaTex数学公式
行内公式标识符:\$ 或“$\backslash ($”+“$\backslash )$”,
行间公式标识符:\$\$ 或 “$\backslash [$”+“$\backslash ]$”

社区建议QQ群:365716997

分类

–1 投票
4.3k 浏览

zn={{0., "HCM2"}, {0., "PREDDEG"}, {0., "CONTROL"}, {0.00304672,
  "LOCALE"}, {0.00304672, "HBCU"}, {0.00304672, "PBI"}, {0.00304672,
  "ANNHI"}, {0.00304672, "TRIBAL"}, {0.00304672,
  "AANAPII"}, {0.00304672, "HSI"}, {0.00304672, "NANTI"}, {0.00304672,
   "MENONLY"}, {0.00304672, "WOMENONLY"}, {0.743399,
  "RELAFFIL"}, {0.569736, "SATVR25"}, {0.569736,
  "SATVR75"}, {0.564997, "SATMT25"}, {0.564997, "SATMT75"}, {0.737305,
   "SATWR25"}, {0.737305, "SATWR75"}, {0.569736,
  "SATVRMID"}, {0.564997, "SATMTMID"}, {0.737305,
  "SATWRMID"}, {0.553487, "ACTCM25"}, {0.553487, "ACTCM75"}, {0.61239,
   "ACTEN25"}, {0.61239, "ACTEN75"}, {0.612051, "ACTMT25"}, {0.612051,
   "ACTMT75"}, {0.899797, "ACTWR25"}, {0.899797,
  "ACTWR75"}, {0.553487, "ACTCMMID"}, {0.61239,
  "ACTENMID"}, {0.612051, "ACTMTMID"}, {0.899797,
  "ACTWRMID"}, {0.530806, "SAT_AVG"}, {0.512187,
  "SAT_AVG_ALL"}, {0.00440081, "PCIP01"}, {0.00440081,
  "PCIP03"}, {0.00440081, "PCIP04"}, {0.00440081,
  "PCIP05"}, {0.00440081, "PCIP09"}, {0.00440081,
  "PCIP10"}, {0.00440081, "PCIP11"}, {0.00440081,
  "PCIP12"}, {0.00440081, "PCIP13"}, {0.00440081,
  "PCIP14"}, {0.00440081, "PCIP15"}, {0.00440081,
  "PCIP16"}, {0.00440081, "PCIP19"}, {0.00440081,
  "PCIP22"}, {0.00440081, "PCIP23"}, {0.00440081,
  "PCIP24"}, {0.00440081, "PCIP25"}, {0.00440081,
  "PCIP26"}, {0.00440081, "PCIP27"}, {0.00440081,
  "PCIP29"}, {0.00440081, "PCIP30"}, {0.00440081,
  "PCIP31"}, {0.00440081, "PCIP38"}, {0.00440081,
  "PCIP39"}, {0.00440081, "PCIP40"}, {0.00440081,
  "PCIP41"}, {0.00440081, "PCIP42"}, {0.00440081,
  "PCIP43"}, {0.00440081, "PCIP44"}, {0.00440081,
  "PCIP45"}, {0.00440081, "PCIP46"}, {0.00440081,
  "PCIP47"}, {0.00440081, "PCIP48"}, {0.00440081,
  "PCIP49"}, {0.00440081, "PCIP50"}, {0.00440081,
  "PCIP51"}, {0.00440081, "PCIP52"}, {0.00440081,
  "PCIP54"}, {0.00304672, "DISTANCEONLY"}, {0.00372376,
  "UGDS"}, {0.00372376, "UGDS_WHITE"}, {0.00372376,
  "UGDS_BLACK"}, {0.00372376, "UGDS_HISP"}, {0.00372376,
  "UGDS_ASIAN"}, {0.00372376, "UGDS_AIAN"}, {0.00372376,
  "UGDS_NHPI"}, {0.00372376, "UGDS_2MOR"}, {0.00372376,
  "UGDS_NRA"}, {0.00372376, "UGDS_UNKN"}, {0.00541638,
  "PPTUG_EF"}, {0., "CURROPER"}, {0.469871, "NPT4_PUB"}, {0.550779,
  "NPT4_PRIV"}, {0.469871, "NPT41_PUB"}, {0.504062,
  "NPT42_PUB"}, {0.510494, "NPT43_PUB"}, {0.544685,
  "NPT44_PUB"}, {0.590047, "NPT45_PUB"}, {0.560596,
  "NPT41_PRIV"}, {0.577183, "NPT42_PRIV"}, {0.588693,
  "NPT43_PRIV"}, {0.613744, "NPT44_PRIV"}, {0.638118,
  "NPT45_PRIV"}, {0.00541638, "PCTPELL"}, {0.383548,
  "RET_FT4"}, {0.656398, "RET_FTL4"}, {0.623223,
  "RET_PT4"}, {0.673324, "RET_PTL4"}, {0.00541638,
  "PCTFLOAN"}, {0.0169262, "UG25abv"}, {0.13304,
  "GRAD_DEBT_MDN_SUPP"}, {0.13304,
  "GRAD_DEBT_MDN10YR_SUPP"}, {0.110359, "RPY_3YR_RT_SUPP"}, {0.381855,
   "C150_4_POOLED_SUPP"}, {0.662492,
  "C200_L4_POOLED_SUPP"}, {0.0836154, "md_earn_wne_p10"}, {0.07109,
  "gt_25k_p6"}};

(zn // Sort[#] & // Reverse)[[All, 1]] //
 BarChart[#,
   LabelingFunction -> (Placed[#, Above, Rotate[#, Pi/2.4] &] &),
   ImageSize -> {1000, 1000}, BarSpacing -> 0.3,
   ChartStyle -> "Pastel",
   ChartLabels -> (Placed[(zn // Sort[#] & // Reverse)[[All, 2]],
      Below, Rotate[#, Pi/2.4] &])] &


 

画出来就是这样,,,是代码的问题还是mma的问题

分类:绘图 | 用户: 马脸元人 (-4 分)
修改于 用户:苹果
晕啊啊啊!!!!!!!!
大哥怎么样啊??。。。。
已添加答案。。。。。。。。
我觉着也是,数据太多了。。。
天哪!!!谢谢!!!!!!

1个回答

+1 投票

1. 又深究了一下,不是bug,但是算是mma没有处理好的地方。首先明确为什么出问题了。从以下代码可以看到出问题的原因。

data = Range[20];
label = ToString /@ Floor[10^RandomReal[10, 20]];
BarChart[data, ImageSize -> {400, 400}, 
 ChartLabels -> (Placed[Framed /@ label, Below, Rotate[#, Pi/2.4] &])]

2. 可以看出,其实每个frame的中心点,和上面的柱子,横坐标是相同的,所以每个frame的中心点是左右均匀分布的。但是由于不同label的长度差异太大,导致frame的大小区别很大,所以整个frame并不是左右均匀分布。

3. 解决方法1,把label通过补上白色(或其他背景色)的0变成等长的字符串。但是这样是极其不美观的,虽然label之间等间距了,但是短的字符串明显感觉位置和上面的柱子错位了。

pad="\!\(\*\nStyleBox[\"0\",\nFontColor->RGBColor[1, 1, 1]]\)";
length=Max@StringLength@label;
newlabel=StringJoin@@StringRepeat[pad,length-StringLength@#+1]<>#&/@label;
BarChart[data,ImageSize->{400,400},
    ChartLabels->(Placed[newlabel,Below,Rotate[#,Pi/2.4]&])]

4. 解决方法2,把label旋转90度显示,代码略。

用户: 苹果 (2.2k 分)
...