这可能是一个愚蠢的问题,但有谁知道在 R 中生成树形图对象后如何显示它?考虑下面的代码:
loadpackages <-function(package.list = c("ggplot2", "Rcpp")) {new.packages <-package.list[!(package.list %in% installed.packages()[, "Package"])]
if (length(new.packages))
install.packages(new.packages, repos = 'http://cran.us.r-project.org')
lapply(eval(package.list), require, character.only = TRUE)}
loadpackages(c("treemap"))
data(GNI2014)
tm = treemap(
GNI2014,
index = c("continent", "iso3"),
vSize = "population",
vColor = "GNI",
draw = FALSE, # comment this line out to see the treemap
type = "value"
)
Run Code Online (Sandbox Code Playgroud)
这不会产生任何图形,但会保存“树形图列表”。有谁知道我如何显示这个对象?
PS:我的动机是在生成特定的树形图后修改一些分类标签(添加百分比),但我无法从树顶对象的显示中生成绘图。
我正在使用Apexcharts 树状图并想要应用不同的颜色。
如果 type 数据是“a”类型,我想要一种颜色,如果数据是“b”类型,我想要另一种颜色。
我的数据:
const TreeData = [
{
data: [
{
x: 'Product 1',
y: 218,
type:'a'
},
{
x: 'Product 2',
y: 149,
type:'b'
}]
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事情:
colors: [function({ value, seriesIndex, w }) {
if (value < 55) {
return '#7E36AF'
} else {
return '#D9534F'
}
}, function({ value, seriesIndex, w }) {
if (value < 111) {
return '#7E36AF'
} else {
return '#D9534F'
}
}]
Run Code Online (Sandbox Code Playgroud)
但我无法在上述函数中获取类型值。
如何使用不同的颜色?
在Java中,我可以执行以下操作:
TreeMap<Double, String> myMap = new TreeMap<Double, String>();
Run Code Online (Sandbox Code Playgroud)
如果我希望它以相反的顺序排序,我可以提供一个比较器,例如:
class ReverseOrder implements Comparator<Object> {
public ReverseOrder() {
}
public int compare(Object o1,Object o2) {
Double i1=(Double)o1;
Double i2=(Double)o2;
return -i1.compareTo(i2);
}
}
Run Code Online (Sandbox Code Playgroud)
并将对象实例化为
TreeMap<Double, MyObject> myMap = new TreeMap<Double, MyObject>()(new ReverseOrder());
Run Code Online (Sandbox Code Playgroud)
如果我想从Scala中创建可变的Java TreeMap,我可以这样做:
var treeMap = new java.util.TreeMap[Double,MyObject]
Run Code Online (Sandbox Code Playgroud)
如何在Scala中实现Java比较器,以便我可以根据升序或降序进行排序?在这里,我假设我不能将Scala Ordering特征与Java集合混合.另外,有没有人知道Scala中是否可以使用可变的TreeMap?
最近一个面试问题让我感到不确定.
对于TreeMap和HashMap中的get()方法,它的性能是什么?
a)平均值:常数(与n无关)最差:常数(与n无关)
b)平均值:常数(与n无关)最差:与log(n)成比例
c)平均值:常数(与n无关)最差:与(n)成比例
d)平均值:与log(n)成比例最差:与(n)成比例
哪个是对的?
谈论性能和资源.
在添加和编辑值,ArrayList或TreeMap时,哪一个更快,所需资源更少?
或者是否有任何类型的数据可以击败这两个?(它必须能够以某种方式使数据排序)
是否有任何具有排序Map(例如TreeMap)但能够替换的Java库keys?例如,我正在寻找可以取代的东西treeMapInstance.firstKey().速度是非常重要的,这就是为什么我不是存储值,删除,然后将值放回新密钥的原因.
在我的应用程序中,我可能有一个对象,如
TreeMap<Long, Double> foo = new TreeMap<Long, Double>();
Run Code Online (Sandbox Code Playgroud)
有时我想在foo不改变相关值的情况下更改密钥.
foo.put(1l, 1.0);
foo.put(2l, 2.0);
Run Code Online (Sandbox Code Playgroud)
在上面的,例如我怎么可能改变key 1l,以5l有效?
我目前正在开展一个项目,我正在从社会安全网站上检索有关名称的数据.基本上我给了一个数字x,和y和z年.我必须从y到z的每一年返回前x个名字.
因此,从网站返回的数据是名称,等级和年份.我必须输入返回到TreeMap,HashMap或LinkedHashMap的每个名称,但我不确定如何存储它们,因为无论我使用什么作为键,都可能存在重复.这一年不能成为关键,因为我每年都会得到最多的x名,所以他们都将来自同一年.如果有多年,会有几个等级1等名称,因为每年都有一个,所以这不是关键.名称本身不是关键,因为多年来同名的名字可能在前几名中.
我已经设法理解了这个项目的大部分复杂部分,但这是最简单的部分之一,我似乎无法理解!
我听说过我可以使用类似年份的方法作为键,并使值成为名称或类似的列表,但我不确定如何在这样的实现中添加值.我非常感谢任何建议!
非常感谢.
编辑:请注意我被特别告知我必须使用TreeMap,HashMap或LinkedHashMap.我听说过MultiMap,但这不是我的选择之一.
我有一个TreeMap,我想迭代它并打印键值对.但我不想从头开始,我想从一个特定的键值对开始.
基本上我想这样做 -
TreeMap<String, String> treeMap = new TreeMap<String, String>();
//Populate it here
treeMap.get("key1");
//get the iterator to the treemap starting from the key1-value1 pair and iterate
Run Code Online (Sandbox Code Playgroud)
如果我想从头到尾迭代,我知道如何做到这一点,但我没有找到任何答案.
我们考虑以下代码:
//...
public Map<String, Integer> getFruits() throws SomeException {
QueryResult[] queryResults = queryFruits();
Map<String, Integer> fruits = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
for (QueryResult qr : queryResults) {
fruits.put(qr.getField("Name").toString(), (Integer) rec.getField("ArticleNumber"));
}
return fruits;
}
//...
public static void main(String args[]) {
App app = new App();
Map<String, Integer> originalFruits = app.getFruits();
System.out.println(originalFruits.keySet());
}
Run Code Online (Sandbox Code Playgroud)
- 执行结果将是
[Apple, banana, cherry, Dragon_Fruit, Papaya ]
Run Code Online (Sandbox Code Playgroud)
在那之后,我正在打电话getApprovedFuits()并传递originalFruits给它,同时whiteListedFruitNames:
public Map<String, Integer> getApprovedFruits(Map<String, Integer> fruits, Set<String> whiteListedFruitNames) {
Map<String, Integer> approvedFruits = new …Run Code Online (Sandbox Code Playgroud) 我试图删除所有空值,但如果最后一个键的treeSet为null,那么它仍然存在.所以我在想如何删除最后一个条目,如果它是null.由于这是一个treeMap,我认为我可以通过使用tm.lastKey()访问它来获取最后一个元素,但该方法似乎不存在.所以这个问题是双重的.首先,有没有办法删除所有空值,包括最后一个,第二个是,.lastKey()方法在哪里?
public class Timing {
private static Map<String, SortedSet> tm = new TreeMap<String, SortedSet>();
public static Map manipulate() {
SortedSet ss = new TreeSet();
ss.add("APPL");
ss.add("VOD");
ss.add("MSFT");
tm.put("2019-09-18",null);
tm.put("2019-09-21",ss);
tm.put("2019-09-22", null);
tm.put("2019-09-20",ss);
tm.put("2019-09-19", null);
tm.put("2019-09-23",null);
return tm;
}
public static void printMap() {
for (String s: tm.keySet()) {
System.out.println(s + ": " + tm.get(s));
}
}
// Will delete all but the last one
public static void deleteNull() {
Set set = tm.entrySet();
Iterator i = set.iterator();
Map.Entry me = …Run Code Online (Sandbox Code Playgroud)