Note that the new colors in the default plot style is overwritten by the use of PlotStyle -> dash. This can be manually fixed, in this case, with Transpose[{dash, ColorData[3, "ColorList"][[1 ;; 6]]}], but you don't want to do that every time.

Changing the default PlotStyle will always have this problem.
You'd expect there to be a default ColorData or color scheme setting somewhere,
but I have been unable to find it.

does not fix the default plot colors.
Which probably means that the default internals of Plot does not make an explicit call to ColorData...

It's also interesting to note that when running a Trace[Plot[...],TraceInternal -> True] the colors seem to appear out of nowhere! I looked at such a trace in trying to answer this recent SO question related to how Mathematica determines the number of lines and thus colors it needs in a plot.

4 Answers
4

Update August 2014

The Legacy Solution below has been corrected to work in recent versions (9 and 10).

At the same time however the introduction of PlotTheme functionality makes my solution largely academic as plot themes are designed to combine in the same manner. If no existing theme has the desired style you can create a custom one.

This example demonstrates setting new default plot colors as well a custom thickness and these correctly combining with the dashing directives in PlotStyle:

Implementation note

As it stands, resetting SetOptions[..., PlotStyle -> Automatic] will revert the colors to the original defaults. If this behavior is undesirable, the code can be modified to give a different default color, in the manner of Janus' also function, upon which my styleJoin is clearly based.

That's really good - it works well/smoothly. How did you find out about the "MessagesHead" thing -- that looks pretty obscure. I was really hoping that you'd found some way to use System`Private`$PlotStyleFunction, but never mind. I have two small problems with the code. (1) As you pointed out in @belisarius' answer, changing the colors of the Plot does not effect the colours of the filling. It would be possible to hack this with FillingStyle - but not really necessary.
–
SimonApr 14 '11 at 12:02

(2) I find associating a plotting rule with a UpValue on Rule a bit perverse. It also leads to the problem that @Sasha pointed out, since Rule is too deep for a pattern match to his example. This can be fixed by making a loop that produces a normal DownValue for each h in pp. This can also be designed to fix the problem that Sasha pointed out. Fix this issue and you get the bounty - since it is probably the best "simple" solution that is possible.
–
SimonApr 14 '11 at 12:05

1

@Simon, by the way, I may have to add "I code perverse Mathematica" to my profile. ;-p
–
Mr.Wizard♦Apr 14 '11 at 12:14

3

@Mr.Wizard: It looks fine (+125)! A lot more solid than the previous version. I'm sure that this was some of the hardest 100pts that you've earned. And since your solution built off that of @Janus and @Belisarius, I feel like they should share in the bounty. So everyone who has voted up Mr.Wizards answer, go and vote up Janus' and Belisarius' answers!!
–
SimonApr 14 '11 at 23:17

2

@Simon, thank you! The rep points are nice, but the real reward is knowing I helped. :-)
–
Mr.Wizard♦Apr 15 '11 at 9:31

As you can see, I'm using the defaults from Plot no matter where also is used. It might actually be nicer to use Options associated with also. This would also remove any need to fiddle with Options for Plot...
–
JanusMar 23 '11 at 3:24

Nice! +1. I think I prefer keeping the options associated with Plot (or which ever plotting function you want to use also with) so that it behaves as close to normal as possible. Obviously, it's not quite the answer I'm hoping for (ie a simple setting for a default color scheme), but it's still useful.
–
SimonMar 23 '11 at 4:10

Two small problems. 1) also overrides any manually set colors in the plot. This is simply fixed by reversing the order of terms in ps putting the locally supplied options last. 2) You need also every time you make a plot using a manual PlotStyle setting -- a little annoying, but not a deal breaker!
–
SimonMar 23 '11 at 4:13

@Simon -- Thanks for catching the ordering bug. I actually thought it had to be the way I did it, maybe inspired by rules. Will edit above.
–
JanusMar 23 '11 at 5:01

Mr.W: It did look promising - but doesn't actually seem do do anything. Have you looked at Trace with TraceInteral->True? I discovered GraphicsPerformanceTuningDumpcolors that way... but it also seems to be/do nothing. Another interesting thing to look at is the output of DeleteCases[Table[{x, Names[x <> "Color*", IgnoreCase -> True]}, {x, Contexts[]}], {_, {}}] // Column... There might be something useful there, but I haven't found it yet (or figured out the right way of using it).
–
SimonApr 9 '11 at 9:05

Mma 7 does not appear to have "GraphicsPerformanceTuningDumpcolors" unless I am doing it wrong. When you say $PlotStyleFunction` doesn't do anything, do you mean with regard to Plot? Because it certainly does give the right output on my system. (editing post to include that...)
–
Mr.Wizard♦Apr 9 '11 at 9:22

1

I see, nice! That matches exactly the colors used by Plot -- unlike ColorData[1,"ColorList"] which is out by 10^-16 in some cases. System`Private`$PlotStyleFunction[n, lst] gives a list of styles n long where extra styles in lst are "Riffled" into it. This behaviour can be easily emulated, but changing $PlotStyleFunction (either as a DownValue or a pure function OwnValue) doesn't seem to make any difference to Plot... :(
–
SimonApr 10 '11 at 0:08

@Simon, you see why I was excited, and then disappointed. I wonder if that actually is the right function, but if it is called at a level lower than DownValues/OwnValues and thereby out of reach. Do you know if this is possible?
–
Mr.Wizard♦Apr 10 '11 at 2:25

2

@Mr.Wizard When searching the string $PlotStyleFunction in the Mathematica's directory by Total Commander I have found four files in the "C:\Program Files\Wolfram Research\Mathematica\7.0\SystemFiles\Kernel\" subdirectories: {Binaries\Windows-x86-64\mathdll.dll,Binaries\Windows\mathdll.dll,SystemResourc‌​es\Windows-x86-64\Explore\PlotExplorer.mx,SystemResources\Windows\Explore\PlotExp‌​lorer.mx}. HTH.
–
Alexey PopkovApr 11 '11 at 12:18

Mathematica is a registered trademark of Wolfram Research, Inc. While the mark is used herein with the limited permission of Wolfram Research, Stack Exchange and this site disclaim all affiliation therewith.