我想创建一个图表,从Pandas框架的轴刻度应该是百分比。
matplotlib有一个很好的axes格式化程序,它可以根据给定的最大值自动计算百分比ticks:
示例:
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame( { 'images': np.arange(0, 355, 5) } ) # 70 items in total, max is 350
ax = df.plot()
ax.yaxis.set_major_formatter(pltticker.PercentFormatter(xmax=350))
loc = pltticker.MultipleLocator(base=50) # locator puts ticks at regular intervals
ax.yaxis.set_major_locator(loc)
字符串
x1c 0d1x的数据
**由于matplotlib的使用相当繁琐,我想用Plotly做同样的事情。**我只找到了将刻度标签格式化为百分比的选项-但没有为我计算刻度和百分比的“自动格式化程序”。是否有一种方法可以使用自动百分比刻度,或者我必须每次手动计算它们(呃)?
import plotly.express as px
import pandas as pd
fig = px.line(df, x=df.index, y=df.images, labels={'index':'num of users', '0':'num of img'})
fig.layout.yaxis.tickformat = ',.0%' # does not help
fig.show()
型
的
谢谢你的任何提示。
2条答案
按热度按时间icnyk63a1#
我不确定是否有百分比的轴选项,但是通过将y除以max,
y = df.y/df.y.max()
,相对容易得到。这些类型的计算,在plot调用中执行,非常方便,我一直在使用它们。注意事项:如果你有负值的可能性,它确实会变得更复杂(和丑陋)。像
y=(df.y-df.y.min())/(df.y.max()-df.y.min())
这样的东西可能是必要的,也是更一般的解决方案。完整示例:
字符串
的数据
g52tjvyc2#
字符串
会解决这个问题