我有一个脚本,可以创建一个密不可分的叶绿素阴影世界地图。我一直通过一个示例来使用它来创建自定义的阴影世界地图,并且一切正常,除了每次我尝试使用以下绘图方法直接保存该图时,都会遇到以下错误,并且我不知道为什么:
ValueError:为plotly.graph_objs.choropleth.ColorBar类型的对象指定了无效的属性:'autotick ..
就我正在执行的目的而言,至关重要的是,我可以直接通过程序保存创建的图形,而不是通过HTML链接将其打开(效果很好,并且不会出现上述错误)。我已经尝试了这两行:
pio.write_image(fig, 'fig1.png') #import plotly.io as pio
和
plotly.offline.iplot(fig,validate=False, filename ='worldmap', image ='png')
但两者似乎都返回相同的错误,所以我一无所知?任何帮助,甚至替代方法,将不胜感激。这是完整的代码,出于功能目的已将部分注释掉:
import pandas as pd
import plotly
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import plotly.io as pio
init_notebook_mode(connected=True)
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/2014_world_gdp_with_codes.csv')
'''
df=df.set_index('COUNTRY')
for x, y in zip(Countries, country_counts):
df.loc[x, df.columns.get_loc('GDP (BILLIONS)')] = y
df[0].replace({None: 0}, inplace=True)
df['GDP (BILLIONS)']=df[0]
print(df)
'''
data = [dict(
type='choropleth',
locations=df['CODE'],
z=df['GDP (BILLIONS)'],
text=df.index,
colorscale=[[0, "rgb(5, 10, 172)"], [0.35, "rgb(40, 60, 190)"], [0.5, "rgb(70, 100, 245)"],\
[0.6, "rgb(90, 120, 245)"], [0.7, "rgb(106, 137, 247)"], [1, "rgb(220, 220, 220)"]],
autocolorscale=False,
reversescale=True,
marker=dict(
line=dict(
color='rgb(180,180,180)',
width=0.5
)),
colorbar=dict(
autotick=False,
tickprefix='',
title='Leads'),
)]
layout = dict(
title='',
geo=dict(
showframe=False,
showcoastlines=False,
projection=dict(
type='Mercator'
)
)
)
fig = dict(data=data, layout=layout)
pio.write_image(fig, 'fig1.png')
#plotly.offline.iplot(fig,validate=False, filename ='worldmap', image ='png')
#plot(fig, validate=False, filename='world-map', image='png')
答案 0 :(得分:0)
您在这里有两个不同的问题。颜色栏上的ValueError需要删除
autotick=False,
tickprefix='',
为了不保存文件而是以交互方式显示文件,请更改
plotly.offline.iplot(fig,validate=False, filename ='worldmap', image ='png')
到
plotly.offline.iplot(fig, validate=False)
包含filename属性将强制保存文件。