You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA. */
#include <math.h>
void
chart_write_xlabel(struct chart *ch, const char *label)
{
+ if ( ! ch )
+ return ;
pl_savestate_r(ch->lp);
}
-/* Set the scale for the abscissa */
-void
-chart_write_xscale(struct chart *ch, double min, double max, double tick)
-{
- double x;
-
- ch->x_max = ceil( max / tick ) * tick ;
- ch->x_min = floor ( min / tick ) * tick ;
-
- ch->abscissa_scale = fabs(ch->data_right - ch->data_left) /
- fabs(ch->x_max - ch->x_min);
-
- for(x = ch->x_min ; x <= ch->x_max; x += tick )
- draw_tick (ch, TICK_ABSCISSA, (x - ch->x_min) * ch->abscissa_scale, "%g", x);
-
-}
-
-
-/* Set the scale for the ordinate */
-void
-chart_write_yscale(struct chart *ch, double min, double max, double tick)
-{
- double y;
-
- ch->y_max = ceil( max / tick ) * tick ;
- ch->y_min = floor ( min / tick ) * tick ;
-
- ch->ordinate_scale =
- fabs(ch->data_top - ch->data_bottom) / fabs(ch->y_max - ch->y_min) ;
-
- for(y = ch->y_min ; y <= ch->y_max; y += tick )
- {
- draw_tick (ch, TICK_ORDINATE,
- (y - ch->y_min) * ch->ordinate_scale, "%g", y);
- }
-
-}
-
/* Write the ordinate label */
void
chart_write_ylabel(struct chart *ch, const char *label)
{
+ if ( ! ch )
+ return ;
+
pl_savestate_r(ch->lp);
pl_move_r(ch->lp, ch->data_bottom, ch->ordinate_right);
{
int ds;
+ if ( ! chart )
+ return ;
+
+
pl_savestate_r(chart->lp);
pl_filltype_r(chart->lp,1);
/* Plot a data point */
void
-chart_datum(struct chart *ch, int dataset, double x, double y)
+chart_datum(struct chart *ch, int dataset UNUSED, double x, double y)
{
+
+ if ( ! ch )
+ return ;
+
+
+
const double x_pos =
(x - ch->x_min) * ch->abscissa_scale + ch->data_left ;
const double y_pos =
(y - ch->y_min) * ch->ordinate_scale + ch->data_bottom ;
-
pl_savestate_r(ch->lp);
pl_fmarker_r(ch->lp, x_pos, y_pos, 6, 15);
double x1, y1;
double x2, y2 ;
+ if ( ! ch )
+ return ;
+
+
if ( lim_dim == CHART_DIM_Y )
{
x1 = ( limit1 - intercept ) / slope ;