我正在用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()
上面的代码没有尝试设置直方图条颜色,它会产生一个带红色条的直方图:
我尝试了几项将直方图条颜色更改为蓝色,但没有一条成功。
首先,根据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中的直方图条颜色?
答案 0 :(得分:1)
另一种可能有用的黑客方法是:
plot1 = Gnuplot.PlotItems.Data(dataToPlot, with_="histograms linecolor rgb 'blue'")
在我看来,gnuplot-py
应该允许一些语法,如:
plot1 = Gnuplot.PlotItems.Data(dataToPlot, with_="histograms",linecolor="rgb 'blue'")
或类似的东西。我现在没有一个好的测试案例来试验...