各カラムごとのデータをラベルで色分けしながら1枚の散布図に出力したい


PythonやRのデータフレームで、各カラムのデータがある程度同じスケールにあるとき  
それぞれのデータをラベルで色分けしながら1枚の散布図で出力するにはどのようにすればよいでしょうか?

irisデータによるサンプル  
<https://gist.github.com/netj/8836201>  
上記のリンク先のCSVファイルを下の画像のように出力したいと考えています。[![出力したい散布図の例](https://i.stack.imgur.com/pcw7s.png)](https://i.stack.imgur.com/pcw7s.png)

画像は下記のサイトのものを使用しています。  
<https://blog.magrathealabs.com/choosing-one-of-many-python-visualization-
tools-7eb36fa5855f>




pythonの場合は、pandas.melt() と seaborn.catplot() を使うのが簡単です。

[code]

    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    df = pd.read_csv('iris.csv')
    tmp = pd.melt(df, id_vars=['variety'], var_name='measurement', value_name='value')
    sns.catplot(x='value', y='measurement', hue='variety', data=tmp)
    plt.show()
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/SWFBf.png)](https://i.stack.imgur.com/SWFBf.png)




pythonの場合は、pandas.melt() と seaborn.catplot() を使うのが簡単です。

[code]

    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    df = pd.read_csv('iris.csv')
    tmp = pd.melt(df, id_vars=['variety'], var_name='measurement', value_name='value')
    sns.catplot(x='value', y='measurement', hue='variety', data=tmp)
    plt.show()
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/SWFBf.png)](https://i.stack.imgur.com/SWFBf.png)

