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

更改GnuplotPy直方图中的条形图颜色?

钱和平
2023-03-14

我正在用GnuplotPy绘制一些直方图,我想更改直方图条的颜色。(默认情况下,条形图为红色。)这篇StackOverflow文章中的答案给出了几个在普通Gnuplot中如何更改直方图条颜色的选项,但是我还无法让这些解决方案在GnuplotPy中工作。

以下是我使用的基本设置:

import Gnuplot

gp = Gnuplot.Gnuplot(persist = 1)
gp('set ylabel "Accuracy"')
gp('set format x " "') #remove the auto-generated xtics labels 
gp('set xtics scale 0') #remove xtic marks. 
gp(r'set xtics add ("Method 1" 0.15) ("Method 2" 1.15)')
dataToPlot = [6.9, 47.6]

gp('set style data histograms')
gp('set style fill solid 1.0 border -1')
plot1 = Gnuplot.PlotItems.Data(dataToPlot)

gp.plot(plot1)
gp.hardcopy('hist_example.eps',terminal = 'postscript', enhanced=1, color=1) #must come after plot() function
gp.reset() #must be placed after hardcopy()

上面的代码没有尝试设置直方图条的颜色,它生成了一个带有红色条的直方图:

我尝试了几种方法将直方图条颜色更改为蓝色,但都没有成功。

首先,在这篇文章中,按照mgilson的建议,我尝试添加以下行,但它抛出了一个错误,并且条仍然显示为红色:

gp('set style lc rgb "blue"') #throws this error: line 0: expecting 'data', 'function', 'line', 'fill' or 'arrow'

我还尝试了对代码的以下修改,它在不生成绘图的情况下抛出了一个错误:

plot1 = Gnuplot.PlotItems.Data(dataToPlot, with_="linecolor rgb 'blue'")  #throws this error: plot "/var/folders/98/st7ct15n227g1p92mljkx93m0000gq/T/tmp875mRk.gnuplot/fifo" notitle with linecolor rgb 'blue' ^ line 0: expecting 'lines', 'points', 'linespoints', 'dots', 'impulses',    'yerrorbars', 'xerrorbars', 'xyerrorbars', 'steps', 'fsteps',   'histeps', 'filledcurves', 'boxes', 'boxerrorbars', 'boxxyerrorbars',   'vectors', 'financebars', 'candlesticks', 'errorlines', 'xerrorlines',  'yerrorlines', 'xyerrorlines', 'pm3d', 'labels', 'histograms',   'image', 'rgbimage'

那么,如何在GnuplotPy中更改直方图条的颜色呢?

共有1个答案

闽阳州
2023-03-14

另一种可能有效的黑客方法是:

plot1 = Gnuplot.PlotItems.Data(dataToPlot, with_="histograms linecolor rgb 'blue'")

在我看来,gnuplot py应该允许以下语法:

plot1 = Gnuplot.PlotItems.Data(dataToPlot, with_="histograms",linecolor="rgb 'blue'")

或者类似的。我现在没有一个好的测试用例来进行实验。。。

 类似资料:
  • 是否可以动态更改Gnuplot脚本中条的颜色?我有以下脚本 这将生成此绘图: 有没有可能使零度以下的色条变成红色? 谢谢, 斯文

  • 我正在使用gnuplot绘制条形图。 问题是:我希望每个酒吧都有不同的颜色。例如:红色的MSA-GA ACO和蓝色的MSA-GA PACO。 我该怎么做呢? 以下是我使用过的命令: “data.dat”:

  • 我正在制作一个应用程序,它需要一些数据来制作一个条形图,但条形的颜色必须与它所代表的数据相关。 想象一下我有这种数据:香蕉430水梅隆300 现在我要做一个条形图,我想用黄色颜料画BANANA酒吧,用绿色颜料画WATER MELLON酒吧。我正在使用java中的JFreeChart库。我的研究使我制作了自定义渲染器,但如果我制作自定义渲染器的话,颜色会随机出现在条形图上。有什么解决办法吗?

  • 我试图显示一个图像的直方图,只显示一些颜色。我已经用JFreeChart和createXYLineChart实现了这一点,并通过遍历所有像素来获取所有数据。 为了加快速度,我尝试用“createhistogram”来完成它。我遵循了这个准则。 为了用新值更新图表,我使用了以下两种方法: setHistogram是一种方法,它根据激活的复选框(布尔红色、绿色和蓝色)返回HistogramDatase

  • 假设我有一个数据帧,如: 我正在做下面的绘图程序: 这意味着: 现在,我希望能够在数据帧a上执行数据选择。比如说: 并在张贴的直方图中突出显示从b中选择的内容。例如,如果对于X3,b的第一行是[32:0],对于X2,b的第一行是[0:5],则期望的输出将是: 使用上述for循环和sns是否可以实现这一点?非常感谢! 编辑:我也很高兴matplotlib解决方案,如果更容易。 编辑2: 如果有帮助,

  • 这个教程中我们会涉及条形图和直方图。我们先来看条形图: import matplotlib.pyplot as plt plt.bar([1,3,5,7,9],[5,2,7,8,2], label="Example one") plt.bar([2,4,6,8,10],[8,6,2,5,6], label="Example two", color='g') plt.legend() plt.xla