Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8675497
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 12, 20262026-06-12T19:57:50+00:00 2026-06-12T19:57:50+00:00

I would like to produce a spider (aka radar/star) plot using Gnuplot where different

  • 0

I would like to produce a spider (aka radar/star) plot using Gnuplot where different axes have independent scales. I am able to produce such a plot using OriginPro (commercial), but with Gnuplot I am only able to set a radar plot with uniform scale.

The (csv file) dataset looks like the following (first row is column labels):

# FEATURE, Product_A, Product_B, Product_C, Product_D
attribute_1, 2, 10, 7, 3.5
attribute_2, 1, 0.5, 3,4
attribute_3, 37, 58, 49, 72
attribute_4, 1985, 1992, 2006, 2010
attribute_5, 0.1, 0.5, 0.3, 0.8

and the plot I am looking for is this one: https://www.dropbox.com/s/uvqubzqvm6puhb8/spider.pdf –
As you can see each axis stands for a different attribute, and has its own scale.

I guess the Gnuplot starting code is:

set polar
set grid polar
set angles degrees
set size square
set style data filledcurves

But I don’t know how to proceed. Any suggestions?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-12T19:57:51+00:00Added an answer on June 12, 2026 at 7:57 pm

    The answer by @george helped me figure out how to rearrange the dataset, in order to pick from it the corresponding attribute data.
    Because I was also looking for different range scales for the different spider axes, in addition to @george’s suggestion, I thought that an axis-specific normalisation to the common [0:1] range, would have the problem solved. The main modification is then related to the using field of the plot command.

    The code is fairly lengthy, I’m sure it could be optimised. It could also be merged into a script or a simple C code, in order to let the user decide the number of axes (number of attributes), and the different ranges (min, max) for each specific axis.

    The following example is for 5 attributes comparing 2 products. Here is shown the plot result image:

    set nokey
    set polar
    set angles degrees
    npoints = 5
    a1 = 360/npoints*1
    a2= 360/npoints*2
    a3= 360/npoints*3
    a4= 360/npoints*4
    a5= 360/npoints*5
    set grid polar 360.
    set size square
    set style data lines
    unset border
    set arrow nohead from 0,0 to first 1*cos(a1) , 1*sin(a1)
    set arrow nohead from 0,0 to first 1*cos(a2) , 1*sin(a2)
    set arrow nohead from 0,0 to first 1*cos(a3) , 1*sin(a3)
    set arrow nohead from 0,0 to first 1*cos(a4) , 1*sin(a4)
    set arrow nohead from 0,0 to first 1*cos(a5) , 1*sin(a5)
    a1_max = 10
    a2_max = 5
    a3_max = 100
    a4_max = 2020
    a5_max = 1
    a1_min = 0
    a2_min = 0
    a3_min = 50
    a4_min = 1980
    a5_min = 0
    set label "(0:10)" at cos(a1),sin(a1) center offset char 1,1
    set label "(0:5)" at cos(a2),sin(a2) center offset char -1,1
    set label "(50:100)" at cos(a3),sin(a3) center offset char -1,-1
    set label "(1980:2020)" at cos(a4),sin(a4) center offset char 0,-1
    set label "(0:1)" at cos(a5),sin(a5) center offset char 3,0
    set xrange [-1:1]
    set yrange [-1:1]
    unset xtics
    unset ytics
    set rrange [0:1]
    set rtics (""0,""0.25,""0.5,""0.75,""1)
    
    plot '-' using ($1==1?a1:($1==2?a2:($1==3?a3:($1==4?a4:($1==5?a5:$1))))):($1==1?(($2-a1_min)/(a1_max-a1_min)):($1==2?(($2-a2_min)/(a2_max-a2_min)):($1==3?(($2-a3_min)/(a3_max-a3_min)):($1==4?(($2-a4_min)/(a4_max-a4_min)):($1==5?(($2-a5_min)/(a5_max-a5_min)):$1))))) w l
    1 8
    2 3
    3 67
    4 2000
    5 0.2
    1 8
    
    plot '-' using ($1==1?a1:($1==2?a2:($1==3?a3:($1==4?a4:($1==5?a5:$1))))):($1==1?(($2-a1_min)/(a1_max-a1_min)):($1==2?(($2-a2_min)/(a2_max-a2_min)):($1==3?(($2-a3_min)/(a3_max-a3_min)):($1==4?(($2-a4_min)/(a4_max-a4_min)):($1==5?(($2-a5_min)/(a5_max-a5_min)):$1))))) w l
    1 6
    2 1.5
    3 85
    4 2010
    5 0.5
    1 6
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I would like to produce C# helper files from the KML2.2 xml schema using
I am using Core Image and would like to produce a black and white
I'm using Visual Studio 2008 (C++) and would like to produce a list of
I have dictionary and would like to produce html page where will be drawn
I am using jQuery tablesorter to sort a table and would like to produce
I have an events based table that I would like to produce a query,
I have written my own clustering routine and would like to produce a dendrogram.
I would like to produce a character list of all of the first letters
I would like to produce a binary zip distribution of my project that would
I would like to be able to produce a file by running a command

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.