scatter plot with different color2019 Community Moderator ElectionWhat is the difference between @staticmethod and @classmethod?Difference between append vs. extend list methods in PythonPrint in terminal with colors?Difference between __str__ and __repr__?How to put the legend out of the plotSave plot to image file instead of displaying it using Matplotlibset bin colors in 2d histogram (polyochromatic plots)How to make IPython notebook matplotlib plot inlineLimited color choice in matplotlib?How do I create a line plot in matplotlib with different colors along the line, dependent on categorical variables?
What's the "normal" opposite of flautando?
Latex does not go to next line
Should I take out a loan for a friend to invest on my behalf?
PTIJ: Should I kill my computer after installing software?
Filtering SOQL results with optional conditionals
NASA's RS-25 Engines shut down time
Recommendation letter by significant other if you worked with them professionally?
Is "history" a male-biased word ("his+story")?
How does one describe somebody who is bi-racial?
Reverse string, can I make it faster?
How to write ı (i without dot) character in pgf-pie
Definition of Statistic
Bash script should only kill those instances of another script's that it has launched
How to draw cubes in a 3 dimensional plane
How strictly should I take "Candidates must be local"?
Is it "Vierergruppe" or "Viergruppe", or is there a distinction?
Was Luke Skywalker the leader of the Rebel forces on Hoth?
Does this video of collapsing warehouse shelves show a real incident?
Database Backup for data and log files
Makefile strange variable substitution
Declaring and defining template, and specialising them
Word for a person who has no opinion about whether god exists
Does "Until when" sound natural for native speakers?
Accepted offer letter, position changed
scatter plot with different color
2019 Community Moderator ElectionWhat is the difference between @staticmethod and @classmethod?Difference between append vs. extend list methods in PythonPrint in terminal with colors?Difference between __str__ and __repr__?How to put the legend out of the plotSave plot to image file instead of displaying it using Matplotlibset bin colors in 2d histogram (polyochromatic plots)How to make IPython notebook matplotlib plot inlineLimited color choice in matplotlib?How do I create a line plot in matplotlib with different colors along the line, dependent on categorical variables?
I am new to matplotlib and trying to plot this liner regression with customized color for a specific independent variable:
colors=['red','blue','green','black']
X=array([[1000],[2000],[3000],[4500]]
y=array([[200000],[200000],[200000],[200000]]
plt.scatter(X, y, color = colors[0])
plt.plot(X, lin_reg.predict(X), color = 'blue')
plt.xlabel('X')
plt.ylabel('y')
plt.show()
I need to set the color to black when X==3000 so I am using np.where:
colors_z=(np.where(X==3000,colors[4],colors[0]))
plt.scatter(X, y, color = colors_z)
But I am getting color error. any Idea what I am doing wrong? Thanks
python matplotlib
add a comment |
I am new to matplotlib and trying to plot this liner regression with customized color for a specific independent variable:
colors=['red','blue','green','black']
X=array([[1000],[2000],[3000],[4500]]
y=array([[200000],[200000],[200000],[200000]]
plt.scatter(X, y, color = colors[0])
plt.plot(X, lin_reg.predict(X), color = 'blue')
plt.xlabel('X')
plt.ylabel('y')
plt.show()
I need to set the color to black when X==3000 so I am using np.where:
colors_z=(np.where(X==3000,colors[4],colors[0]))
plt.scatter(X, y, color = colors_z)
But I am getting color error. any Idea what I am doing wrong? Thanks
python matplotlib
add a comment |
I am new to matplotlib and trying to plot this liner regression with customized color for a specific independent variable:
colors=['red','blue','green','black']
X=array([[1000],[2000],[3000],[4500]]
y=array([[200000],[200000],[200000],[200000]]
plt.scatter(X, y, color = colors[0])
plt.plot(X, lin_reg.predict(X), color = 'blue')
plt.xlabel('X')
plt.ylabel('y')
plt.show()
I need to set the color to black when X==3000 so I am using np.where:
colors_z=(np.where(X==3000,colors[4],colors[0]))
plt.scatter(X, y, color = colors_z)
But I am getting color error. any Idea what I am doing wrong? Thanks
python matplotlib
I am new to matplotlib and trying to plot this liner regression with customized color for a specific independent variable:
colors=['red','blue','green','black']
X=array([[1000],[2000],[3000],[4500]]
y=array([[200000],[200000],[200000],[200000]]
plt.scatter(X, y, color = colors[0])
plt.plot(X, lin_reg.predict(X), color = 'blue')
plt.xlabel('X')
plt.ylabel('y')
plt.show()
I need to set the color to black when X==3000 so I am using np.where:
colors_z=(np.where(X==3000,colors[4],colors[0]))
plt.scatter(X, y, color = colors_z)
But I am getting color error. any Idea what I am doing wrong? Thanks
python matplotlib
python matplotlib
asked Mar 6 at 15:22
user3570022user3570022
164
164
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
I think this does what you're looking for; using np.where
is a bit overkill for this purpose:
X = [1000, 2000, 3000, 4500]
y = [200000, 3000, 200000, 200000]
colors = list(map(lambda x: 'r' if x == 3000 else 'b', X))
plt.scatter(X, y, color=colors)
plt.xlabel('X')
plt.ylabel('y')
plt.show()
Awesome. Thanks rgk. worked like a charm
– user3570022
Mar 6 at 15:51
1
You can also add a list comprehension to avoid lambda and map:colors = ['r' if x == 3000 else 'b' for x in X]
– Bazingaa
Mar 6 at 16:08
add a comment |
You've set colors_z to include colors[4] but there are only 4 colors in the list colors. The index for colors_z should be out of range. I'd dump the np.where in favor of a simple if statement or ternary operator. Something like:
# ternary operator example
plt.scatter(x, y, color = [colors[3] if x == 3000 else colors[0] for i in x])
Note that this will only work when x is exactly == 3000, but it doesn't throw a syntactical error on my console, so it should work in your regression.
New contributor
1
I like your approach because it's the cleanest and simplest to read. For the color argument, shouldn't it be a list like socolor = [colors[3] if x == 3000 else colors[0] for x in X]
?
– Guimoute
Mar 6 at 15:47
Because as of now, you evaluate ifx == 3000
which is always false ([1000, 2000, 3000, 4500] != 3000
) so you are stuck with a single color. You do want a list.
– Guimoute
Mar 6 at 15:53
Yeah that's probably better Guimote.
– Sam
Mar 6 at 16:09
That ran much nicer. Thanks!
– Sam
Mar 6 at 16:13
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55026530%2fscatter-plot-with-different-color%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
I think this does what you're looking for; using np.where
is a bit overkill for this purpose:
X = [1000, 2000, 3000, 4500]
y = [200000, 3000, 200000, 200000]
colors = list(map(lambda x: 'r' if x == 3000 else 'b', X))
plt.scatter(X, y, color=colors)
plt.xlabel('X')
plt.ylabel('y')
plt.show()
Awesome. Thanks rgk. worked like a charm
– user3570022
Mar 6 at 15:51
1
You can also add a list comprehension to avoid lambda and map:colors = ['r' if x == 3000 else 'b' for x in X]
– Bazingaa
Mar 6 at 16:08
add a comment |
I think this does what you're looking for; using np.where
is a bit overkill for this purpose:
X = [1000, 2000, 3000, 4500]
y = [200000, 3000, 200000, 200000]
colors = list(map(lambda x: 'r' if x == 3000 else 'b', X))
plt.scatter(X, y, color=colors)
plt.xlabel('X')
plt.ylabel('y')
plt.show()
Awesome. Thanks rgk. worked like a charm
– user3570022
Mar 6 at 15:51
1
You can also add a list comprehension to avoid lambda and map:colors = ['r' if x == 3000 else 'b' for x in X]
– Bazingaa
Mar 6 at 16:08
add a comment |
I think this does what you're looking for; using np.where
is a bit overkill for this purpose:
X = [1000, 2000, 3000, 4500]
y = [200000, 3000, 200000, 200000]
colors = list(map(lambda x: 'r' if x == 3000 else 'b', X))
plt.scatter(X, y, color=colors)
plt.xlabel('X')
plt.ylabel('y')
plt.show()
I think this does what you're looking for; using np.where
is a bit overkill for this purpose:
X = [1000, 2000, 3000, 4500]
y = [200000, 3000, 200000, 200000]
colors = list(map(lambda x: 'r' if x == 3000 else 'b', X))
plt.scatter(X, y, color=colors)
plt.xlabel('X')
plt.ylabel('y')
plt.show()
answered Mar 6 at 15:37
rgkrgk
38339
38339
Awesome. Thanks rgk. worked like a charm
– user3570022
Mar 6 at 15:51
1
You can also add a list comprehension to avoid lambda and map:colors = ['r' if x == 3000 else 'b' for x in X]
– Bazingaa
Mar 6 at 16:08
add a comment |
Awesome. Thanks rgk. worked like a charm
– user3570022
Mar 6 at 15:51
1
You can also add a list comprehension to avoid lambda and map:colors = ['r' if x == 3000 else 'b' for x in X]
– Bazingaa
Mar 6 at 16:08
Awesome. Thanks rgk. worked like a charm
– user3570022
Mar 6 at 15:51
Awesome. Thanks rgk. worked like a charm
– user3570022
Mar 6 at 15:51
1
1
You can also add a list comprehension to avoid lambda and map:
colors = ['r' if x == 3000 else 'b' for x in X]
– Bazingaa
Mar 6 at 16:08
You can also add a list comprehension to avoid lambda and map:
colors = ['r' if x == 3000 else 'b' for x in X]
– Bazingaa
Mar 6 at 16:08
add a comment |
You've set colors_z to include colors[4] but there are only 4 colors in the list colors. The index for colors_z should be out of range. I'd dump the np.where in favor of a simple if statement or ternary operator. Something like:
# ternary operator example
plt.scatter(x, y, color = [colors[3] if x == 3000 else colors[0] for i in x])
Note that this will only work when x is exactly == 3000, but it doesn't throw a syntactical error on my console, so it should work in your regression.
New contributor
1
I like your approach because it's the cleanest and simplest to read. For the color argument, shouldn't it be a list like socolor = [colors[3] if x == 3000 else colors[0] for x in X]
?
– Guimoute
Mar 6 at 15:47
Because as of now, you evaluate ifx == 3000
which is always false ([1000, 2000, 3000, 4500] != 3000
) so you are stuck with a single color. You do want a list.
– Guimoute
Mar 6 at 15:53
Yeah that's probably better Guimote.
– Sam
Mar 6 at 16:09
That ran much nicer. Thanks!
– Sam
Mar 6 at 16:13
add a comment |
You've set colors_z to include colors[4] but there are only 4 colors in the list colors. The index for colors_z should be out of range. I'd dump the np.where in favor of a simple if statement or ternary operator. Something like:
# ternary operator example
plt.scatter(x, y, color = [colors[3] if x == 3000 else colors[0] for i in x])
Note that this will only work when x is exactly == 3000, but it doesn't throw a syntactical error on my console, so it should work in your regression.
New contributor
1
I like your approach because it's the cleanest and simplest to read. For the color argument, shouldn't it be a list like socolor = [colors[3] if x == 3000 else colors[0] for x in X]
?
– Guimoute
Mar 6 at 15:47
Because as of now, you evaluate ifx == 3000
which is always false ([1000, 2000, 3000, 4500] != 3000
) so you are stuck with a single color. You do want a list.
– Guimoute
Mar 6 at 15:53
Yeah that's probably better Guimote.
– Sam
Mar 6 at 16:09
That ran much nicer. Thanks!
– Sam
Mar 6 at 16:13
add a comment |
You've set colors_z to include colors[4] but there are only 4 colors in the list colors. The index for colors_z should be out of range. I'd dump the np.where in favor of a simple if statement or ternary operator. Something like:
# ternary operator example
plt.scatter(x, y, color = [colors[3] if x == 3000 else colors[0] for i in x])
Note that this will only work when x is exactly == 3000, but it doesn't throw a syntactical error on my console, so it should work in your regression.
New contributor
You've set colors_z to include colors[4] but there are only 4 colors in the list colors. The index for colors_z should be out of range. I'd dump the np.where in favor of a simple if statement or ternary operator. Something like:
# ternary operator example
plt.scatter(x, y, color = [colors[3] if x == 3000 else colors[0] for i in x])
Note that this will only work when x is exactly == 3000, but it doesn't throw a syntactical error on my console, so it should work in your regression.
New contributor
edited Mar 6 at 16:13
New contributor
answered Mar 6 at 15:37
SamSam
917
917
New contributor
New contributor
1
I like your approach because it's the cleanest and simplest to read. For the color argument, shouldn't it be a list like socolor = [colors[3] if x == 3000 else colors[0] for x in X]
?
– Guimoute
Mar 6 at 15:47
Because as of now, you evaluate ifx == 3000
which is always false ([1000, 2000, 3000, 4500] != 3000
) so you are stuck with a single color. You do want a list.
– Guimoute
Mar 6 at 15:53
Yeah that's probably better Guimote.
– Sam
Mar 6 at 16:09
That ran much nicer. Thanks!
– Sam
Mar 6 at 16:13
add a comment |
1
I like your approach because it's the cleanest and simplest to read. For the color argument, shouldn't it be a list like socolor = [colors[3] if x == 3000 else colors[0] for x in X]
?
– Guimoute
Mar 6 at 15:47
Because as of now, you evaluate ifx == 3000
which is always false ([1000, 2000, 3000, 4500] != 3000
) so you are stuck with a single color. You do want a list.
– Guimoute
Mar 6 at 15:53
Yeah that's probably better Guimote.
– Sam
Mar 6 at 16:09
That ran much nicer. Thanks!
– Sam
Mar 6 at 16:13
1
1
I like your approach because it's the cleanest and simplest to read. For the color argument, shouldn't it be a list like so
color = [colors[3] if x == 3000 else colors[0] for x in X]
?– Guimoute
Mar 6 at 15:47
I like your approach because it's the cleanest and simplest to read. For the color argument, shouldn't it be a list like so
color = [colors[3] if x == 3000 else colors[0] for x in X]
?– Guimoute
Mar 6 at 15:47
Because as of now, you evaluate if
x == 3000
which is always false ([1000, 2000, 3000, 4500] != 3000
) so you are stuck with a single color. You do want a list.– Guimoute
Mar 6 at 15:53
Because as of now, you evaluate if
x == 3000
which is always false ([1000, 2000, 3000, 4500] != 3000
) so you are stuck with a single color. You do want a list.– Guimoute
Mar 6 at 15:53
Yeah that's probably better Guimote.
– Sam
Mar 6 at 16:09
Yeah that's probably better Guimote.
– Sam
Mar 6 at 16:09
That ran much nicer. Thanks!
– Sam
Mar 6 at 16:13
That ran much nicer. Thanks!
– Sam
Mar 6 at 16:13
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55026530%2fscatter-plot-with-different-color%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown