jwetter10
jwetter10

Reputation: 29

Python using custom color in plot

I'm having a problem that (I think) should have a fairly simple solution. I'm still a relative novice in Python, so apologies if I'm doing something obviously wrong. I'm just trying to create a simple plot with multiple lines, where each line is colored by its own specific, user-defined color. When I run the following code as a test for one of the colors it ends up giving me a blank plot. What am I missing here? Thank you very much!

import numpy as np
import matplotlib.pyplot as plt
from colour import Color 

dbz53 = Color('#DD3044')

*a bunch of arrays of data, two of which are called x and mpt1* 

fig, ax = plt.subplots()
ax.plot(x, mpt1, color='dbz53', label='53 dBz')
ax.set_yscale('log')

ax.set_xlabel('Diameter (mm)')
ax.set_ylabel('$N(D) (m^-4)$')
ax.set_title('N(D) vs. D')
#ax.legend(loc='upper right')

plt.show()

Upvotes: 3

Views: 3481

Answers (2)

swatchai
swatchai

Reputation: 18812

The statement

ax.plot(x, mpt1, color='dbz53', label='53 dBz')

is wrong with 'dbz53' where python treated it as a string of unknown rgb value.
You can simply put

color='#DD3044'

and it will work.
Or you can try

color=dbz53.get_hex()

without quote if you want to use the colour module you imported.

Upvotes: 1

R. S. Nikhil Krishna
R. S. Nikhil Krishna

Reputation: 4250

In the plot command, you could enter Hex colours. A much more simple way to beautify your plot would be to simply use matplotlib styles. For instance, before any plot function, just write plt.style.use('ggplot')

Upvotes: 0

Related Questions