📜  Python Plotly:如何设置调色板?

📅  最后修改于: 2022-05-13 01:54:53.842000             🧑  作者: Mango

Python Plotly:如何设置调色板?

在本文中,我们将讨论如何在 plotly 中显式设置颜色序列/调色板。通常,我们使用内置的颜色序列,但如果我们想创建一个,这并不难。让我们看看如何设置调色板的一些方法。

方法一:为连续数据设置调色板

像素。 scatter() 方法用于绘制我们提供的数据的散点图。我们通过制作颜色列表来明确制作调色板。该列表被传递给 px.scatter() 方法的 colour_continuous_scale 参数。当我们在这个例子中处理连续数据时,我们使用 colour_continuous_scale 参数。

单击此处阅读并下载 CSV 文件。

Python3
# import packages and libraries
import pandas as pd
import plotly.express as px
 
# reading the dataset
df = pd.read_csv('weather.csv', encoding='UTF-8')
 
# plot a scatterplot
fig = px.scatter(df, x="Temperature", y='Humidity', color='Light',
                 title="setting up colour palette",
                 color_continuous_scale=["orange", "red",
                                         "green", "blue",
                                         "purple"])
 
 
fig.show()


Python3
# import packages and libraries
import pandas as pd
import plotly.express as px
 
# reading the dataset
df = pd.read_csv('country_density.csv', encoding='UTF-8')
 
# taking observations of first 5 countries
df = df.iloc[:5, :]
 
# plotting bar plot
fig = px.bar(df, x="Country", y="Density_(P/Km²)", color="Country",
             orientation="v", hover_name="Country",
             color_discrete_sequence=[
                 "orange", "red", "green", "blue", "purple"],
             title="Explicit color sequence"
             )
 
fig.show()


Python3
# import packages and libraries
import pandas as pd
import plotly.express as px
 
# reading the dataset
df = pd.read_csv('country_density.csv', encoding='UTF-8')
 
# taking observations of first 5 countries
df = df.iloc[:5, :]
 
# plotting bar plot
fig = px.bar(df, x="Country", y="Density_(P/Km²)", color="Country",
             orientation="v", hover_name="Country",
             color_discrete_sequence=["orange", "red"],
             title="Explicit color sequence"
             )
 
fig.show()


Python3
# import packages and libraries
import pandas as pd
import plotly.express as px
 
# reading the dataset
df = pd.read_csv('country_density.csv', encoding='UTF-8')
 
# taking observations of first 5 countries
df = df.iloc[:5, :]
 
# plotting bar plot
fig = px.bar(df, x="Country", y="Density_(P/Km²)", color="Country",
             orientation="v", hover_name="Country",
             color_discrete_sequence=["orange", "red"],
             title="Explicit color sequence"
             )
 
 
fig = px.colors.qualitative.swatches()
fig.show()


Python3
# import packages and libraries
import pandas as pd
import plotly.express as px
 
# reading the dataset
df = pd.read_csv('country_density.csv', encoding='UTF-8')
 
# taking observations of first 5 countries
df = df.iloc[:5, :]
 
# plotting bar plot
fig = px.bar(df, x="Country", y="Density_(P/Km²)", color="Country",
             orientation="v",
             hover_name="Country", color_discrete_sequence=[
                 px.colors.qualitative.Alphabet[6],
                 px.colors.qualitative.Alphabet[11],
               px.colors.qualitative.Plotly[2],
                 px.colors.qualitative.Plotly[7],
               px.colors.qualitative.G10[5]],
             title="Explicit color sequence"
             )
 
fig.show()


输出:

方法2:为离散数据设置调色板

像素。 bar() 方法用于绘制我们提供的数据的条形图。我们通过制作颜色列表来明确制作调色板。该列表被传递给 px.bar() 方法的 color_discrete_sequence 参数。当我们在这个例子中处理离散数据时,我们使用 color_discrete_sequence 参数。

单击此处下载使用的 CSV 文件。

Python3

# import packages and libraries
import pandas as pd
import plotly.express as px
 
# reading the dataset
df = pd.read_csv('country_density.csv', encoding='UTF-8')
 
# taking observations of first 5 countries
df = df.iloc[:5, :]
 
# plotting bar plot
fig = px.bar(df, x="Country", y="Density_(P/Km²)", color="Country",
             orientation="v", hover_name="Country",
             color_discrete_sequence=[
                 "orange", "red", "green", "blue", "purple"],
             title="Explicit color sequence"
             )
 
fig.show()

输出:

如果我们的调色板包含的颜色少于我们的组或标签怎么办?颜色会重复。

看一下这个例子来形象化。

Python3

# import packages and libraries
import pandas as pd
import plotly.express as px
 
# reading the dataset
df = pd.read_csv('country_density.csv', encoding='UTF-8')
 
# taking observations of first 5 countries
df = df.iloc[:5, :]
 
# plotting bar plot
fig = px.bar(df, x="Country", y="Density_(P/Km²)", color="Country",
             orientation="v", hover_name="Country",
             color_discrete_sequence=["orange", "red"],
             title="Explicit color sequence"
             )
 
fig.show()

输出:

方法 3:从现有的调色板设置调色板

px.colors.qualitative 模块包含内置的颜色序列。要查看所有颜色序列,请使用 px.colors.qualitative.swatches() 方法。

Python3

# import packages and libraries
import pandas as pd
import plotly.express as px
 
# reading the dataset
df = pd.read_csv('country_density.csv', encoding='UTF-8')
 
# taking observations of first 5 countries
df = df.iloc[:5, :]
 
# plotting bar plot
fig = px.bar(df, x="Country", y="Density_(P/Km²)", color="Country",
             orientation="v", hover_name="Country",
             color_discrete_sequence=["orange", "red"],
             title="Explicit color sequence"
             )
 
 
fig = px.colors.qualitative.swatches()
fig.show()

输出:

在这个例子中,我们从已经存在的调色板中索引颜色并形成一个新的调色板,而不是以字符串格式给出名称,这也可以这样做。如果我们想从现有的调色板中选择颜色或者我们不知道颜色的名称,可以使用此方法。

索引格式为:

Python3

# import packages and libraries
import pandas as pd
import plotly.express as px
 
# reading the dataset
df = pd.read_csv('country_density.csv', encoding='UTF-8')
 
# taking observations of first 5 countries
df = df.iloc[:5, :]
 
# plotting bar plot
fig = px.bar(df, x="Country", y="Density_(P/Km²)", color="Country",
             orientation="v",
             hover_name="Country", color_discrete_sequence=[
                 px.colors.qualitative.Alphabet[6],
                 px.colors.qualitative.Alphabet[11],
               px.colors.qualitative.Plotly[2],
                 px.colors.qualitative.Plotly[7],
               px.colors.qualitative.G10[5]],
             title="Explicit color sequence"
             )
 
fig.show()

输出: