-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
replace rgb codes with CSS colors including plotly recommended colors #5175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
b12a4e2
123c6b9
bd10f20
81a6e9c
4926e0a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -91,8 +91,8 @@ fig.add_trace(go.Bar( | |
name='SF Zoo', | ||
orientation='h', | ||
marker=dict( | ||
color='rgba(246, 78, 139, 0.6)', | ||
line=dict(color='rgba(246, 78, 139, 1.0)', width=3) | ||
color='hotpink', | ||
line=dict(color='deeppink', width=3) | ||
) | ||
)) | ||
fig.add_trace(go.Bar( | ||
|
@@ -101,8 +101,8 @@ fig.add_trace(go.Bar( | |
name='LA Zoo', | ||
orientation='h', | ||
marker=dict( | ||
color='rgba(58, 71, 80, 0.6)', | ||
line=dict(color='rgba(58, 71, 80, 1.0)', width=3) | ||
color='dimgray', | ||
line=dict(color='black', width=3) | ||
) | ||
)) | ||
|
||
|
@@ -118,10 +118,8 @@ import plotly.graph_objects as go | |
top_labels = ['Strongly<br>agree', 'Agree', 'Neutral', 'Disagree', | ||
'Strongly<br>disagree'] | ||
|
||
colors = ['rgba(38, 24, 74, 0.8)', 'rgba(71, 58, 131, 0.8)', | ||
'rgba(122, 120, 168, 0.8)', 'rgba(164, 163, 204, 0.85)', | ||
'rgba(190, 192, 213, 1)'] | ||
|
||
colors = ['DarkBlue', 'MediumBlue', 'cyan', 'mediumpurple', 'thistle'] | ||
#, 'silver' | ||
x_data = [[21, 30, 21, 16, 12], | ||
[24, 31, 19, 15, 11], | ||
[27, 26, 23, 11, 13], | ||
|
@@ -142,7 +140,7 @@ for i in range(0, len(x_data[0])): | |
orientation='h', | ||
marker=dict( | ||
color=colors[i], | ||
line=dict(color='rgb(248, 248, 249)', width=1) | ||
line=dict(color='ghostwhite', width=1) | ||
) | ||
)) | ||
|
||
|
@@ -161,8 +159,8 @@ fig.update_layout( | |
zeroline=False, | ||
), | ||
barmode='stack', | ||
paper_bgcolor='rgb(248, 248, 255)', | ||
plot_bgcolor='rgb(248, 248, 255)', | ||
paper_bgcolor='lavenderblush', | ||
plot_bgcolor='lavenderblush', | ||
margin=dict(l=120, r=10, t=140, b=80), | ||
showlegend=False, | ||
) | ||
|
@@ -176,22 +174,22 @@ for yd, xd in zip(y_data, x_data): | |
xanchor='right', | ||
text=str(yd), | ||
font=dict(family='Arial', size=14, | ||
color='rgb(67, 67, 67)'), | ||
color='dimgray'), | ||
showarrow=False, align='right')) | ||
# labeling the first percentage of each bar (x_axis) | ||
annotations.append(dict(xref='x', yref='y', | ||
x=xd[0] / 2, y=yd, | ||
text=str(xd[0]) + '%', | ||
font=dict(family='Arial', size=14, | ||
color='rgb(248, 248, 255)'), | ||
color='white'), | ||
showarrow=False)) | ||
# labeling the first Likert scale (on the top) | ||
if yd == y_data[-1]: | ||
annotations.append(dict(xref='x', yref='paper', | ||
x=xd[0] / 2, y=1.1, | ||
text=top_labels[0], | ||
font=dict(family='Arial', size=14, | ||
color='rgb(67, 67, 67)'), | ||
color='dimgray'), | ||
showarrow=False)) | ||
space = xd[0] | ||
for i in range(1, len(xd)): | ||
|
@@ -200,15 +198,15 @@ for yd, xd in zip(y_data, x_data): | |
x=space + (xd[i]/2), y=yd, | ||
text=str(xd[i]) + '%', | ||
font=dict(family='Arial', size=14, | ||
color='rgb(248, 248, 255)'), | ||
color=f"{'white'*(i<2)}{'black'*(i>=2)}"), | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why this f-string for the color? Could it not just be a named color that is close to There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is color of the text that goes on the bars, which is currently CSS GhostWhite and is already has less than ideal contrast with lightest bar. When I went to CSS colors, I ended up with bigger differences between the lightest and darkest bars and struggled to find one color that had enough contrast for all of them. I make the text on the first two bars white and the text on the last three bars black to provide adequate contrast. Here is the proposed bar graph with all white text -- the middle bar in particular is nearly illegible. Yellow and gray perform similarly. Here's a potential alternative fix --swapping Cyan for DarkSlateBlue and then using all white text I welcome thoughts. I am happy to comment this to explain, perhaps: "make the text on the first two bars white and the text on the last three bars black to provide adequate contrast." I use this style of conditional F-string a fair bit in my production code and this is a fairly rich, polished example where it might be helpful to show that technique. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
showarrow=False)) | ||
# labeling the Likert scale | ||
if yd == y_data[-1]: | ||
annotations.append(dict(xref='x', yref='paper', | ||
x=space + (xd[i]/2), y=1.1, | ||
text=top_labels[i], | ||
font=dict(family='Arial', size=14, | ||
color='rgb(67, 67, 67)'), | ||
color='dimgray'), | ||
showarrow=False)) | ||
space += xd[i] | ||
|
||
|
@@ -314,9 +312,9 @@ fig.add_trace(go.Bar( | |
x=y_saving, | ||
y=x, | ||
marker=dict( | ||
color='rgba(50, 171, 96, 0.6)', | ||
color='mediumseagreen', | ||
line=dict( | ||
color='rgba(50, 171, 96, 1.0)', | ||
color='seagreen', | ||
width=1), | ||
), | ||
name='Household savings, percentage of household disposable income', | ||
|
@@ -326,7 +324,7 @@ fig.add_trace(go.Bar( | |
fig.add_trace(go.Scatter( | ||
x=y_net_worth, y=x, | ||
mode='lines+markers', | ||
line_color='rgb(128, 0, 128)', | ||
line_color='purple', | ||
name='Household net worth, Million USD/capita', | ||
), 1, 2) | ||
|
||
|
@@ -342,7 +340,7 @@ fig.update_layout( | |
showgrid=False, | ||
showline=True, | ||
showticklabels=False, | ||
linecolor='rgba(102, 102, 102, 0.8)', | ||
linecolor='gray', | ||
linewidth=2, | ||
domain=[0, 0.85], | ||
), | ||
|
@@ -364,8 +362,8 @@ fig.update_layout( | |
), | ||
legend=dict(x=0.029, y=1.038, font_size=10), | ||
margin=dict(l=100, r=20, t=70, b=70), | ||
paper_bgcolor='rgb(248, 248, 255)', | ||
plot_bgcolor='rgb(248, 248, 255)', | ||
paper_bgcolor='lavenderblush', | ||
plot_bgcolor='lavenderblush', | ||
) | ||
|
||
annotations = [] | ||
|
@@ -380,14 +378,14 @@ for ydn, yd, xd in zip(y_nw, y_s, x): | |
y=xd, x=ydn - 20000, | ||
text='{:,}'.format(ydn) + 'M', | ||
font=dict(family='Arial', size=12, | ||
color='rgb(128, 0, 128)'), | ||
color='purple'), | ||
showarrow=False)) | ||
# labeling the bar net worth | ||
annotations.append(dict(xref='x1', yref='y1', | ||
y=xd, x=yd + 3, | ||
text=str(yd) + '%', | ||
font=dict(family='Arial', size=12, | ||
color='rgb(50, 171, 96)'), | ||
font=dict(family='Arial', size=16, | ||
color='mediumseagreen'), | ||
showarrow=False)) | ||
# Source | ||
annotations.append(dict(xref='paper', yref='paper', | ||
|
@@ -396,7 +394,7 @@ annotations.append(dict(xref='paper', yref='paper', | |
'(2015), Household savings (indicator), ' + | ||
'Household net worth (indicator). doi: ' + | ||
'10.1787/cfc6f499-en (Accessed on 05 June 2015)', | ||
font=dict(family='Arial', size=10, color='rgb(150,150,150)'), | ||
font=dict(family='Arial', size=10, color='gray'), | ||
showarrow=False)) | ||
|
||
fig.update_layout(annotations=annotations) | ||
|
Uh oh!
There was an error while loading. Please reload this page.