import plotly.graph_objs 与import plotly.express 的区别是什么?
时间: 2023-04-02 09:01:43 浏览: 483
import plotly.graph_objs 和 import plotly.express 的区别在于,前者是使用基础的图形对象来创建图表,而后者则是使用高级的快速绘图函数来创建图表。具体来说,plotly.graph_objs 提供了更多的自定义选项和更高级的功能,但需要更多的代码来实现,而 plotly.express 则提供了更简单的语法和更快的绘图速度,但自定义选项相对较少。
相关问题
运用如上数据,import plotly.express as px import plotly.graph_objs as go import pandas as pd import geopandas as gpd df = pd.read_csv(r'D:\data visualization\sucai\acs2015_county_data.csv', index_col=0) state_income = df.groupby('State')['IncomePerCap'].mean().reset_index() fig = px.choropleth(state_income, locations='State', locationmode="USA-states", scope="usa", color='IncomePerCap', hover_name='State', title='Mean Income per Capita by State') fig.show()为什么图上没有显示数据,如何修改
可能是因为 `state_income` 数据框中的 `State` 列中有缩写的州名,而地图中使用的是全称。你可以在 `state_income` 数据框中添加一列全称的州名,然后将 `locations` 参数改为新添加的全称州名列即可。代码如下:
```python
abbr_to_name = {
'AL': 'Alabama',
'AK': 'Alaska',
...
}
state_income['state_name'] = state_income['State'].map(abbr_to_name)
fig = px.choropleth(state_income,
locations='state_name', # 使用新添加的州名全称列
locationmode="USA-states",
scope="usa",
color='IncomePerCap',
hover_name='state_name', # 同样使用新添加的州名全称列
title='Mean Income per Capita by State')
fig.show()
```
其中 `abbr_to_name` 是一个字典,将州名的缩写映射到全称。你需要添加所有州名的缩写和对应的全称。
AttributeError: module 'plotly.graph_objects' has no attribute 'Gantt'
`AttributeError: module 'plotly.graph_objects' has no attribute 'Gantt'` 这个错误提示意味着你在尝试使用Plotly库中的`Gantt`功能,但实际上该模块(`graph_objects`)并没有提供名为`Gantt`的类或函数。Plotly Graph Objects(GO)库主要用于创建静态图表,如散点图、线图等,对于甘特图(Gantt chart),你需要使用`plotly_express`模块或者`plotly.graph_objs.graph_objs`下的`go.Gantt`。
如果你确实想要创建甘特图,可以按照以下步骤检查:
1. 确认版本:确保你安装的是最新版的Plotly,因为早期版本可能不包含`Gantt`属性。你可以通过`pip list plotly`来查看版本。
2. 导入正确模块:如果要用`plotly.express`,那么导入应该是`px.timeline`或`px.gantt`;如果是直接使用`graph_objs`,则应该使用`go.Gantt()`。
3. 检查文档:查阅Plotly官方文档,确认`Gantt`是否在当前版本的支持范围之内。
如果你在代码中遇到了这个问题,确保你的代码像这样导入并使用:
```python
import plotly.express as px
# 或者
from plotly.graph_objs import go
df = ... # 你的数据集
fig = px.timeline(df) # 使用plotly express
# 或者
gantt_trace = go.Gantt(x=['Task 1', 'Task 2', 'Task 3'], y=[0, 3, 6], ...) # 使用graph_objs
```
阅读全文