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

时间:2012-12-12 23:16:06

标签: python gnuplot data-visualization

我正在用GnuplotPy绘制一些直方图,我想改变直方图条的颜色。 (默认情况下,条形图为红色。)this StackOverflow post中的答案给出了如何在普通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()

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

enter image description here


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

首先,根据mgilson在this thread中的建议,我尝试添加以下行,但它会抛出一个错误并且条形图仍然显示为红色:

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 个答案:

答案 0 :(得分:1)

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

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

在我看来,gnuplot-py应该允许一些语法,如:

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

或类似的东西。我现在没有一个好的测试案例来试验...