gpt4 book ai didi

linux - 图形 gnuplot 错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:46:07 25 4
gpt4 key购买 nike

我正在用坐标轴(y“%”和 x“日期”)编写一个图表,当少于 7 条记录没有很好地显示时

这些是文件

数据.csv:

20-04-2016 96.8  95.8 100
21-04-2016 97.07 97.99 100
22-04-2016 98.05 99.5 100
23-04-2016 98.64 97.88 100
24-04-2016 98.96 98.99 100
25-04-2016 98.68 98.11 100

图表

reset

set terminal png size 1200,500

#set xlabel "Time (days)"
set xdata time
set timefmt "%d-%m-%Y"


set ylabel "Total Petitions (%)"
set yrange [95:100]

set title "Akamai"
set key reverse Left outside
set grid

set style data linespoints

plot "datos.csv" using 1:2 title "One (%)", \
"" using 1:3 title "Two (%)", \
"" using 1:4 title "Ideal (%)"

他给我看了这个

enter image description here

如图所示,日期是重复的,我希望每条记录出现一个日期。

我也喜欢放日期

%d-%m\n%Y

如果我输入 7 条或更多条记录就解决了

如果我把完整的日期和轴 x 的描述放在一起,就会发生这种情况

enter image description here

它能把日期竖着放吗?

非常感谢您的帮助

最佳答案

使用设置格式x;

set terminal pngcairo enhanced color dashed \
rounded size 1200,500

set title "Akamai"
set xlabel "date"
set xdata time
set timefmt "%d-%m-%Y"
set format x "%d/%m\n%Y"
set xtics 86400
set nomxtics
set ylabel "Total Petitions (%)"
set yrange [95:100]
set style data linespoints
set grid
set key right bottom
set output 'user1847844.png'

plot "datos.csv" using 1:2 title "One (%)", \
"" using 1:3 title "Two (%)", \
"" using 1:4 title "Ideal (%)"

在内部,gnuplot 将日期时间转换为秒。所以 set xtics 86400 这行基本上是说每天做一个 tick,因为一天有 24*60*60 = 86400 秒。 set nomxtics 告诉 gnuplot 不要在 x 轴上显示小刻度线。

这给出: corrected PNG image

如果要旋转标签,请使用:

set format x "%d/%m/%Y"
set xtics rotate 86400

这应该将日期格式化为单行并将标签旋转 90 度。

更新:

请注意,我使用的是 pngcairo 终端。这是基于 cairo graphics library .这是为了在所有输出媒体上提供一致的输出。但是 gnuplot 必须在 cairo 支持下编译才能工作。

一般来说,我更喜欢pdfcairo 终端。这会产生 PDF 输出,可以在不产生像素化效果的情况下进行缩放。

更新 2:

为了使图表保持一致,我在 gnuplotrc 中定义了某些样式,我在图表中使用了这些样式。我的 gnuplotrc 的内容如下所示。

set encoding utf8

# See https://github.com/Gnuplotting/gnuplot-palettes
# Line styles (colorbrewer Set1)
set style line 1 lc rgb '#E41A1C' pt 1 ps 1 lt 1 lw 2 # red
set style line 2 lc rgb '#377EB8' pt 6 ps 1 lt 1 lw 2 # blue
set style line 3 lc rgb '#4DAF4A' pt 2 ps 1 lt 1 lw 2 # green
set style line 4 lc rgb '#984EA3' pt 3 ps 1 lt 1 lw 2 # purple
set style line 5 lc rgb '#FF7F00' pt 4 ps 1 lt 1 lw 2 # orange
set style line 6 lc rgb '#FFFF33' pt 5 ps 1 lt 1 lw 2 # yellow
set style line 7 lc rgb '#A65628' pt 7 ps 1 lt 1 lw 2 # brown
set style line 8 lc rgb '#F781BF' pt 8 ps 1 lt 1 lw 2 # pink
# Palette
set palette maxcolors 8
set palette defined ( 0 '#E41A1C', 1 '#377EB8', 2 '#4DAF4A', 3 '#984EA3',\
4 '#FF7F00', 5 '#FFFF33', 6 '#A65628', 7 '#F781BF' )

# Standard border
set style line 11 lc rgb '#808080' lt 1 lw 3
set border 0 back ls 11
set tics out nomirror

# Standard grid
set style line 12 lc rgb '#808080' lt 0 lw 1
set grid back ls 12
unset grid

我使用 pdfcairo 终端作为标准,就像这样。

set terminal pdfcairo enhanced color dashed font "Alegreya, 14" \
rounded size 16 cm, 9.6 cm

使用的字体是一个例子。对于报告中的图表,我倾向于使用与正文相同的字体。

plot 命令使用定义的样式。

plot "user1847844.d" using 1:2 ls 1 title "One (%)", \
"" using 1:3 ls 2 title "Two (%)", \
"" using 1:4 ls 3 title "Ideal (%)"

这会产生一个看起来像这样的图形。 graph with my settings


注意:由于 StackOverflow 不接受 PDF 图像,我使用 ImageMagick 将其转换为 PNG。

convert -density 300 <input.pdf> -quality 100 -sharpen 0x1.0 <output.png>

关于linux - 图形 gnuplot 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36953679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com