当前位置: 首页 > 知识库问答 >
问题:

来自数据文件的颜色和xtic的Gnuplots

邹慈
2023-03-14

我想做一个条形图,使用gnuplod3列的值,xtic标签从第2列,颜色从我的数据文件的第4列。该文件看起来像:

0   "13 Sep"    2400.18     "blue"
1   "13 Oct"    440.86      "blue"
2   "13 Nov"    867.03      "blue"
3   "13 Dec"    -247.32     "red"
4   "14 Jan"    -3457.56    "red"
5   "14 Feb"    666.94      "blue"

目前,我使用以下命令绘制,

plot "output.txt" using 1:3:xtic(2) with boxes

绘图在x轴上有正确的tic标签,所有的条都是红色的。我想做的是从文件中获得条形图的颜色,或者有一个从蓝色到红色的平滑调色板,穿过白色。

我尝试了很多不同的建议,在网上搜索时发现了这些建议,但都没有成功。我该怎么做?

共有1个答案

颛孙建业
2023-03-14

要根据数据选择线条颜色,可以使用linecolor变量。在这种情况下,您必须提供一个线型索引作为附加列。

您的数据文件有些多余。您不需要拥有第一列,您可以始终以列(0)的形式访问行号。颜色可以从值符号派生:

"13 Sep"    2400.18     
"13 Oct"    440.86      
"13 Nov"    867.03      
"13 Dec"    -247.32     
"14 Jan"    -3457.56    
"14 Feb"    666.94     

脚本是:

set style fill solid noborder
set xzeroaxis lt -1 lw 2
set boxwidth 0.9 relative
plot "output.txt" using 0:2:($2 < 0 ? 1 : 3):xtic(1) with boxes linecolor variable t ''

结果如下(版本4.6.3):

您还可以使用linecolor rgb变量linecolor调色板等。

如果要根据框的值将框着色为红色/蓝色和白色的混合色,可以按如下操作:

set style fill solid border lt -1
set xzeroaxis lt -1 lw 2
set boxwidth 0.9 relative
unset key

stats "output.txt" using 2 nooutput
set palette defined (STATS_min 'red', 0 'white', STATS_max 'blue')
set autoscale cbfix

plot "output.txt" using 0:2:2:xtic(1) with boxes linecolor palette

结果是:

在框内获得渐变更复杂,需要一些技巧,请参见Gnuplot根据值在框上垂直渐变?。

 类似资料:
  • 在我的11ty站点(skeleventy-starter)上,我想解析数百篇评论。这些评论被存储在我的数据文件夹中的一个名为reviews的文件夹中,作为单个YAML文件(名称如下:“entry-7128372832.yml”)。每个yaml文件如下所示: 但是,当我尝试在我的.njk文件中遍历review-data时: 我似乎既没有访问数据的权限,也没有在控制台中得到一个错误。我错过了什么?感谢

  • 我目前正在Gmap3上开发一个小应用程序 我的数据集来自一个JS文件,我将其解析为一个data[]数组,在该数组中可以找到每个标记lat、lng、title、(信息窗口)内容和要使用的图标 除了图标颜色之外,所有这些都是一种享受 这个作品: var thiscolor='green';//强制所有图标变为绿色不是我想要的,但它可以工作 ..... 图标:new google.maps.Marker

  • 我的项目下划线cli有一个文件,我想记录标志。 目前,做到这一点的唯一方法是使用屏幕截图(可以存储在项目存储库中): 但是屏幕截图不是文本,这会阻止读者在屏幕截图中复制/粘贴命令。它们的创建/编辑/维护也很麻烦,而且浏览器加载速度较慢。现代网络使用文本样式,而不是一堆文本的渲染图像。 虽然一些Markdown解析器支持内联超文本标记语言样式,但GitHub不支持;这不起作用: 这不管用:

  • 免责声明: 首先我想说的是,我对网络开发还很陌生——也许这个问题是由于缺乏基础知识造成的,因此,如果有任何有用的建议,我将不胜感激。 问题: 我试图在我的web应用程序上加载gltf格式的3D数据,但是数据是动态的- 然而,我想坚持使用反应三纤维德雷,因为它易于与反应一起使用。不幸的是,我无法在示例或其他人的代码中找到解决方案。 可在此处找到可编辑沙盒: https://codesandbox.i

  • 我有1000个文本文件。每个都有日期(我做了索引)和股票价格(列0)。我已经创建了代码来查找单个文件的价格的移动平均线,以及价格和移动平均线之间的滚动差异。我想为每个文件创建这样的代码。我必须在组中上传它们,因为它需要太多的内存来一次性上传它们。 我想我必须使用for循环来遍历文件并找到每个文件的度量。但我该怎么做呢?我如何将所有文件上传到一个组中,然后将它们分组到一个变量中,然后创建一个循环来查

  • 问题内容: 我想在bokeh中显示一个DataTable,根据单元格的文本内容,单元格是红色还是橙色。 例如,如果单元格包含单词“错误”,则该单元格将以红色背景显示。如果单元格包含“警告”一词,则为橙色。 我相信我应该使用,但是怎么用呢? 我该怎么做? 谢谢 问题答案: 浏览文档,您可以使用HTMLTemplateFormatter和下划线js格式化表格。有关更多信息,请参见http://docs