@@ -403,12 +403,50 @@ def _makefill(self, x, y, kw, kwargs):
403
403
return seg ,kwargs
404
404
405
405
def _plot_args (self ,tup ,kwargs ,return_kwargs = False ):
406
+ """
407
+ Process the arguments of ``plot([x], y, [fmt], **kwargs)`` calls.
408
+
409
+ This processes a single set of ([x], y, [fmt]) parameters; i.e. for
410
+ ``plot(x, y, x2, y2)`` it will be called twice. Once for (x, y) and
411
+ once for (x2, y2).
412
+
413
+ x and y may be 2D and thus can still represent multiple datasets.
414
+
415
+ For multiple datasets, if the keyword argument *label* is a list, this
416
+ will unpack the list and assign the individual labels to the datasets.
417
+
418
+ Parameters
419
+ ----------
420
+ tup : tuple
421
+ A tuple of the positional parameters. This can be one of
422
+
423
+ - (y,)
424
+ - (x, y)
425
+ - (y, fmt)
426
+ - (x, y, fmt)
427
+
428
+ kwargs : dict
429
+ The keyword arguments passed to ``plot()``.
430
+
431
+ return_kwargs : bool
432
+ If true, return the effective keyword arguments after label
433
+ unpacking.
434
+
435
+ Returns
436
+ -------
437
+ result
438
+ If *return_kwargs* is false, a list of Artists representing the
439
+ dataset(s).
440
+ If *return_kwargs* is true, a list of (Artist, effective_kwargs)
441
+ representing the dataset(s). See *return_kwargs*.
442
+ """
406
443
if len (tup )> 1 and isinstance (tup [- 1 ],str ):
407
- linestyle , marker , color = _process_plot_format ( tup [ - 1 ])
408
- tup = tup [: - 1 ]
444
+ * xy , fmt = tup
445
+ linestyle , marker , color = _process_plot_format ( fmt )
409
446
elif len (tup )== 3 :
410
447
raise ValueError ('third arg must be a format string' )
411
448
else :
449
+ xy = tup
412
450
linestyle ,marker ,color = None ,None ,None
413
451
414
452
# Don't allow any None value; these would be up-converted to one
@@ -417,16 +455,16 @@ def _plot_args(self, tup, kwargs, return_kwargs=False):
417
455
raise ValueError ("x, y, and format string must not be None" )
418
456
419
457
kw = {}
420
- for k ,v in zip (('linestyle' ,'marker' ,'color' ),
421
- (linestyle ,marker ,color )):
458
+ for prop_name ,v in zip (('linestyle' ,'marker' ,'color' ),
459
+ (linestyle ,marker ,color )):
422
460
if v is not None :
423
- kw [k ]= v
461
+ kw [prop_name ]= v
424
462
425
- if len (tup )== 2 :
426
- x = _check_1d (tup [0 ])
427
- y = _check_1d (tup [ - 1 ])
463
+ if len (xy )== 2 :
464
+ x = _check_1d (xy [0 ])
465
+ y = _check_1d (xy [ 1 ])
428
466
else :
429
- x ,y = index_of (tup [- 1 ])
467
+ x ,y = index_of (xy [- 1 ])
430
468
431
469
if self .axes .xaxis is not None :
432
470
self .axes .xaxis .update_units (x )