【问题标题】:Draw a horizontal 1 line box with unicode characters用 unicode 字符绘制一个水平的 1 行框
【发布时间】:2020-07-02 15:02:20
【问题描述】:

我想用 Unicode 字符绘制一个水平框(箱须图)。像这样的:

|------------[===+====]-----------------|

...但更好。目标是仅在一行上生成盒须图。

我找到了方框图字符\U+2500(─)、\U+251C\U+2524(分别是├和┤),所以可以做胡须:

├────────────[===+====]─────────────────┤

...但是中间部分呢?我似乎无法弄清楚如何做得很好。画框字符可用于绘制多于一行的框,但不能用于仅适合一行的框(或矩形)。我所说的“不错”是指看起来更像一个矩形而不是“[======]”。

Here 很好地解释了什么是盒须图。

附:这是我当前的解决方案,使用著名的 Fisher 鸢尾花数据集进行演示。我对它不是 100% 满意,所以仍在寻找更好的 Unicode 字符组合:

   Col                     Summary                                                                                                                  
 1 Petal.Length.setosa                   ╾─────▇▇◆▇────╼                                                                                            
 2 Petal.Length.versicolor                                              ╾──────────────▇▇▇▇▇◆▇▇▇▇───────╼                                           
 3 Petal.Length.virginica                                                                      ╾────────▇▇▇▇▇▇▇◆▇▇▇▇▇───────────────╼               
 4 Petal.Width.setosa      ╾─◆▇────╼                                                                                                                
 5 Petal.Width.versicolor                ╾──▇◆▇▇▇▇───╼                                                                                              
 6 Petal.Width.virginica                       ╾─────▇▇▇◆▇▇▇▇▇──╼                                                                                   
 7 Sepal.Length.setosa                                                                      ╾──────▇▇▇◆▇▇▇─────────╼                                
 8 Sepal.Length.versicolor                                                                           ╾──────────▇▇▇▇◆▇▇▇▇▇▇──────────╼              
 9 Sepal.Length.virginica                                                                            ╾───────────────────▇▇▇▇◆▇▇▇▇▇▇▇──────────────╼
10 Sepal.Width.setosa                                        ╾─────────────▇▇▇◆▇▇▇▇──────────╼                                                      
11 Sepal.Width.versicolor                               ╾───────▇▇▇▇▇◆▇▇▇─────╼                                                                     
12 Sepal.Width.virginica                                   ╾─────────▇▇▇◆▇▇─────────╼                                                               

【问题讨论】:

  • 准确地定义“做得好”的意思。你到底要买什么形状?
  • 看起来画框分类中的所有字符都是要从字符框的中间而不是边缘绘制的。您可能别无选择,只能使用两条线。
  • 如果您不介意您的方框被填写,您可以使用块字符U+2588 █U+2591 ░U+2592 ▒U+2593 ▓
  • 是的,我试过了,但看起来不太好:问题是 2588 占用了整行,所以如果箱形图在另一个之下,它们会加入;和 2587 和其他较短的变体在中间不是对称的。不幸的是,出于某种原因,不能使用两条线。

标签: unicode


【解决方案1】:

我不太清楚你需要什么形状。这里有一些可能性。

画框字符

也许box-drawing characters found in Unicode 适合您的需求。

块元素

请参阅Wikipedia page 列出各种宽度(水平和垂直)的线条。

几何形状

请参阅Wikipedia page,了解各种正方形、圆形和三角形形状的字符。见Unicode specification

传统计算的符号

您可能还对添加到 Unicode 13.Discussed on sibling siteSymbols for Legacy Computing 感兴趣。见Wikipedia

应用程序

如果不是您所需要的,请环顾四周。 Unicode 现在大约有 140,000 个字符。有许多专门用于 Unicode 字符百科全书的应用程序和网站。在 macOS 上,我推荐 Unicode Checker

试试ShapeCatcher.com 网站,它以交互方式将您的手指画与各种 Unicode 字符的子集进行匹配。

【讨论】:

  • 不幸的是,方框绘图字符不适合仅在一行上绘制方框。我会改写我的问题。
  • P.S.关于您的评论“搜索以了解更多信息”,我的编程语言中没有“字符串”和“字符”类。
  • @January 哎呀,我通常在看 Java 相关的问题。
  • 好吧,我已经看过这些了。我尝试了几个选项,但它们看起来都不是很好。我有点希望有人已经在同样的问题上苦苦挣扎并找到了一个更简洁的解决方案......但无论如何谢谢!
猜你喜欢
  • 2016-09-05
  • 2014-08-04
  • 2022-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-28
  • 1970-01-01
相关资源
最近更新 更多