Gráfico de barras Seaborn - Visualización de valores

Estoy buscando ver cómo hacer dos cosas en Seaborn con el uso de un gráfico de barras para mostrar los valores que están en el marco de datos, pero no en el gráfico

1) Estoy buscando mostrar los valores de un campo en un marco de datos mientras graficando otro. Por ejemplo, a continuación, estoy graficando 'propina', pero me gustaría colocar el valor de 'total_bill' centrado sobre cada una de las barras (es decir, 325.88 sobre el viernes, 1778.40 sobre el sábado, etc.)

2) ¿Hay alguna manera de escalar los colores de las barras, con el valor más bajo de 'total_bill' teniendo el color más claro (en este caso el viernes) y el valor más alto de 'total_bill' teniendo el más oscuro? Obviamente, me quedaría con un color (es decir, azul) cuando escale.

¡Gracias! Estoy seguro de que esto es fácil, pero me lo estoy perdiendo ...

Si bien veo que otros piensan que este es un duplicado de otro problema (o dos), me falta la parte de cómo uso un valor que no está en el gráfico como base para la etiqueta o el sombreado. ¿Cómo digo que use total_bill como base? Lo siento, pero no puedo entenderlo en base a esas respuestas.

Comenzando con el siguiente código,

import pandas as pd
import seaborn as sns
%matplotlib inline
df=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata-    book/master/ch08/tips.csv", sep=',')
groupedvalues=df.groupby('day').sum().reset_index()
g=sns.barplot(x='day',y='tip',data=groupedvalues)

Obtengo el siguiente resultado:

Solución interina:

for index, row in groupedvalues.iterrows():
    g.text(row.name,row.tip, round(row.total_bill,2), color='black', ha="center")

Sobre elsombreado, usando el siguiente ejemplo, probé lo siguiente:

import pandas as pd
import seaborn as sns
%matplotlib inline
df=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata-book/master/ch08/tips.csv", sep=',')
groupedvalues=df.groupby('day').sum().reset_index()

pal = sns.color_palette("Greens_d", len(data))
rank = groupedvalues.argsort().argsort() 
g=sns.barplot(x='day',y='tip',data=groupedvalues)

for index, row in groupedvalues.iterrows():
    g.text(row.name,row.tip, round(row.total_bill,2), color='black', ha="center")

Pero eso me dio el siguiente error:

AttributeError: el objeto 'DataFrame' no tiene el atributo 'argsort'

Entonces intenté una modificación:

import pandas as pd
import seaborn as sns
%matplotlib inline
df=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata-book/master/ch08/tips.csv", sep=',')
groupedvalues=df.groupby('day').sum().reset_index()

pal = sns.color_palette("Greens_d", len(data))
rank=groupedvalues['total_bill'].rank(ascending=True)
g=sns.barplot(x='day',y='tip',data=groupedvalues,palette=np.array(pal[::-1])[rank])

y eso me deja con

IndexError: el índice 4 está fuera de límites para el eje 0 con tamaño 4

Respuestas a la pregunta(3)

Su respuesta a la pregunta