标签: treemap

ECharts标签长度过长时标签无法显示

我只是使用EChart的treemap类型来展示数据。但我遇到了一个问题。标签选项显示如下: itemStyle:{ normal:{ label:{ show :true, formtter:"{b}"}

如果我的数据名称的长度太长(可能超过 60 个字符),则标签不会显示在树形图上。名称将显示在工具提示上。为什么?我怎么解决这个问题?谢谢 !

javascript treemap

8
推荐指数
2
解决办法
2万
查看次数

putExtra treeMap返回HashMap无法强制转换为TreeMap android

我需要你的帮助,我无法理解发生了什么?

我正在尝试在2个活动之间发送TreeMap,代码是这样的:

class One extends Activity{
 public void send(){
   Intent intent = new Intent(One.this, Two.class);
   TreeMap<String, String> map = new TreeMap<String, String>();
   map.put("1","something");
   intent.putExtra("map", map);
   startActivity(intent);
   finish();
 }
}

class Two extends Activity{
  public void get(){
  (TreeMap<String, String>) getIntent().getExtras().get("map");//Here is the problem
  }
}
Run Code Online (Sandbox Code Playgroud)

这回到我身边HashMap无法强制转换为TreeMap.什么

android hashmap treemap android-intent

7
推荐指数
1
解决办法
2984
查看次数

如何仅使用正方形生成树图

我目前正在尝试使用d3.js的库树形图.

http://bl.ocks.org/4063582

现在我想知道我是否可以使树图渲染正方形中的所有项目.我只能让它来渲染矩形.我试图使用,.mode("squarify");但这不会导致所需的布局.它不会占用所有可用空间并不重要.我只是想让它渲染正方形.

javascript treemap d3.js

7
推荐指数
1
解决办法
4294
查看次数

有没有办法在Java中执行不安全的代码(禁用安全管理器)?

请不要回答说"你不应该这样做".我不打算在生产代码中使用它,但仅限于一些黑客的乐趣.

在回答这个问题时,我想运行一些任意不安全的Java代码以获得乐趣.有问题的代码涉及只查找Java 的节点TreeMap.

运行以下代码会导致

Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.util
Run Code Online (Sandbox Code Playgroud)

根据这个问题,我可以System.setSecurityManager(null)用来解决大多数这些限制.但是我不能这样做,因为在我的类被加载时弹出错误.

我已经知道在禁用安全管理器后我可以做我想要使用反射的所有内容.但这会使代码变得更加丑陋.核心Java开发人员如何编写单元测试,例如,如果他们无法打包内容java.util

我也尝试了-Djava.security.manager=...但是当我将它设置为时会导致JVM初始化错误null,我不知道还能将其设置为什么.有任何想法吗?

package java.util;

import java.util.TreeMap.Entry;

public class TreeMapHax {

    static <K,V> List<Entry<K, V>> getLeafEntries(TreeMap<K, V> map) {      
        Entry<K, V> root = map.getFirstEntry();
        while( root.parent != null ) root = root.parent;

        List<Entry<K,V>> l = new LinkedList<Entry<K,V>>();
        visitInOrderLeaves(root, l);
        return l;
    }

    static <K,V> void visitInOrderLeaves(Entry<K, V> node, List<Entry<K, V>> …
Run Code Online (Sandbox Code Playgroud)

java securitymanager treemap package-private

7
推荐指数
1
解决办法
1446
查看次数

d3 CSV中的Zoomable Treemap

我是D3的新手,我发现它非常谦卑.

我的目标是从CSV文件制作树形图.我想使用CSV格式,因为我将使用电子表格中的值,并且我很容易以这种方式保存文件.

我试图以分层格式存储数据,如下所示(hier.csv):

parent,child,value
Homer Simpson,Bart,20
Homer Simpson,Lisa,14
Homer Simpson,Maggie,6
Peter Griffin,Chris,19
Peter Griffin,Meg,12
Peter Griffin,Stewie,9
Run Code Online (Sandbox Code Playgroud)

我正在使用这个Zoomable Treemap示例.

我希望树可以任意深入,即如果Bart在我的例子中有孩子,并根据姓名积累父/子关系.

为Sankey Diagrams找到了一个很好的例子,但我没有找到Zoomable Treemaps的等价物.

有没有办法在Bostock的示例的第124和126行之间插入一些代码,以便为Zoomable Treemap正确格式化我的数据?(我可以更改CSV的布局,但希望保留CSV格式).像这种方法使用的东西nest(),但显然这不起作用:

d3.csv("./hier.csv", function(hier) {

  var root = { 
    "name": "myrootnode",
    "children": d3.nest()
        .key(function (d) { return d.parent; })
        .key(function (d) { return d.child; })
        .entries(hier)
  };

  initialize(root);
  accumulate(root);
  layout(root);
  display(root);
  //etc...
Run Code Online (Sandbox Code Playgroud)

我看到了一些示例和StackOverflow问题,这些问题解决了这个问题的一些部分,但却未能将它们端到端地整合在一起.我一直在研究和黑客无济于事.我会欢迎一些帮助.谢谢!

骗子在这里

http://jsfiddle.net/KXuWD/

小提琴笔记:

  • 我正在第90行附近寻求帮助,评论显示
  • 我设置了一个内联变量来保存flare.json的简化副本
  • 我计划在现实生活中将数据保存在一个单独的文件中,但对于JSFiddle,它必须是内联的; 当然,如果我能找出主要逻辑,这将很容易适应回单独的数据文件.
  • 此示例似乎不适用于D3版本3.0.4,这是JSFiddle的当前内置版本.我为这个例子导入了v2.x,因为这适用于Bostock的例子.这是一个潜在的独立问题......

更新

我克服了部分问题.我的想法并不是太过分了nest(),但我没有正确更新我的存取器.这是一个非常草率的看起来很有用的东西:http …

javascript csv treemap d3.js

7
推荐指数
1
解决办法
6246
查看次数

在Java中,通过key.length()对哈希映射进行排序

我有这样的hashmap:

HashMap<String,Integer> map = new HashMap<String,Integer>();
map.put("java",4);
map.put("go",2);
map.put("objective-c",11);
map.put("c#",2);
Run Code Online (Sandbox Code Playgroud)

现在我想按键长度排序这个映射,如果两个键长度相等(例如go和c#都是长度2),那么按照alphba顺序排序.所以我期望得到的结果是这样的:

打印结果:objective-c,11 java,4 c#,2 go,2

这是我自己的玩具,但它根本不起作用......

      HashMap<String,Integer> map = new HashMap<String,Integer>();
          map.put("java",4);
          map.put("go",2);
          map.put("objective-c",11);
          map.put("c#",2);

      Map<String,Integer> treeMap = new TreeMap<String, Integer>(
                new Comparator<String>() {
                    @Override
                    public int compare(String s1, String s2) {
                        return s1.length().compareTo(s2.length());
                    }
                }
        );
Run Code Online (Sandbox Code Playgroud)

实际上'compareTo'方法显示为红色(无法编译)....请有人帮我一些代码示例...我有点困惑如何使用比较器类来自定义比较对象...

java sorting hashmap treemap comparator

7
推荐指数
2
解决办法
5540
查看次数

Java TreeMap自定义比较器奇怪的行为

我正在尝试创建一个Map带有排序的键,首先按字母顺序排序,最后按数字排序.为此,我使用了TreeMap一个自定义Comparator:

public static Comparator<String> ALPHA_THEN_NUMERIC_COMPARATOR =
    new Comparator<String> () {

        @Override
        public int compare(String first, String second) {
            if (firstLetterIsDigit(first)) {
                return 1;
            } else if (firstLetterIsDigit(second)) {
                return -1;
            }
            return first.compareTo(second);
        }
    };

private static boolean firstLetterIsDigit(String string) {
    return (string == null) ? false : Character.isDigit(string.charAt(0));
}
Run Code Online (Sandbox Code Playgroud)

我写了下面的单元测试来说明出了什么问题:

@Test
public void testNumbericallyKeyedEntriesCanBeStored() {
    Map<String, String> map = new HashMap<>();
    map.put("a", "some");
    map.put("0", "thing");
    TreeMap<String, String> treeMap = new TreeMap<>(ALPHA_THEN_NUMERIC_COMPARATOR);
    treeMap.putAll(map);

    assertEquals("some", …
Run Code Online (Sandbox Code Playgroud)

java treemap comparator

7
推荐指数
1
解决办法
512
查看次数

不同的颜色与树图ggplot2 R上的子组的渐变

我有一个树形图(如下所示).我想要的唯一变化是将子组的颜色(图中的YEAR)更改为不同的颜色,而不是全部为蓝色.这有可能吗?

样本数据框

PL <- c(rep("PL1", 4), repl("PL2", 4), rep("PL3", 4), rep("PL4", 4))
CNT <- sample(seq(1:50), 16)
YEAR <- rep(c("2015", "2016", "2017", "2018"), 4)

df <- data.frame(PL, YEAR, CNT)
Run Code Online (Sandbox Code Playgroud)

情节

PL <- c(rep("PL1", 4), repl("PL2", 4), rep("PL3", 4), rep("PL4", 4))
    CNT <- sample(seq(1:50), 16)
    YEAR <- rep(c("2015", "2016", "2017", "2018"), 4)

    df <- data.frame(PL, YEAR, CNT)

    # plot
library(ggplot2)
library(treemapify)
treeMapPlot <- ggplot(df, aes(area = CNT,
                              fill = CNT,
                              label=PL, 
                              subgroup=YEAR)) +
      geom_treemap() +
      geom_treemap_subgroup_border(colour = "white") +
      geom_treemap_text(fontface = "italic", …
Run Code Online (Sandbox Code Playgroud)

r treemap ggplot2

7
推荐指数
2
解决办法
2026
查看次数

jdk.serialFilter 不能用于限制 Java 中 TreeMap 的深度(防止通过 Java 进行 DoS 攻击)

如何通过 Java 防止 DoS 攻击TreeMap

我的代码有一个接受Map对象的 API 。现在我想阻止客户端发送Map一定长度的对象。

现在maxarrayinjdk.serialFilter能够阻止客户端发送HashMap大小 >的对象maxarray

我也想这样做TreeMap。但是maxarrayfield 对TreeMap. 它无法拒绝该请求。

我也设置了maxdepth尺寸。但没有任何效果。

任何人都可以帮我解决这个问题吗?

java security denial-of-service treemap deserialization

7
推荐指数
2
解决办法
328
查看次数

Squarify - 自动调整树状图中标签的大小

我正在使用Squarify在 Python 中实现一个简单的树形图。

我正在绘制艺术家姓名及其在所考虑的歌曲图表中的流百分比,正方形越大/越暗,值越高。

我的代码如下:

dataGoals = sort_by_streams[sort_by_streams["Streams"]>1]

#Utilise matplotlib to scale our stream number between the min and max, then assign this scale to our values.
norm = matplotlib.colors.Normalize(vmin=min(dataGoals.Streams), vmax=max(dataGoals.Streams))
colors = [matplotlib.cm.Blues(norm(value)) for value in dataGoals.Streams]

#Create our plot and resize it.
fig1 = plt.figure()
ax = fig1.add_subplot()
fig1.set_size_inches(16, 4.5)

#Use squarify to plot our data, label it and add colours. We add an alpha layer to ensure black labels show through
labels = ["%s\n%.2f" % …
Run Code Online (Sandbox Code Playgroud)

python matplotlib treemap squarify

7
推荐指数
1
解决办法
2780
查看次数