Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 排序值图matplotlib_Python_Numpy_Matplotlib - Fatal编程技术网

Python 排序值图matplotlib

Python 排序值图matplotlib,python,numpy,matplotlib,Python,Numpy,Matplotlib,我刚开始学习,我的代码有点问题 我需要yMin从60和yMax=100开始,但为什么我的结果是这样 有人能帮我吗 这是我的密码 import matplotlib.pyplot as plt import numpy as np data = [ ["{:.2}".format(0.80443), "{:.2}".format(0.84176), "{:.2}".format(0.84278), "{:.2}".format(0.82316),"{:.2}".format(0.82260)

我刚开始学习,我的代码有点问题 我需要
yMin
60
yMax=100
开始,但为什么我的结果是这样

有人能帮我吗

这是我的密码

import matplotlib.pyplot as plt
import numpy as np


data = [
["{:.2}".format(0.80443), "{:.2}".format(0.84176), "{:.2}".format(0.84278), "{:.2}".format(0.82316),"{:.2}".format(0.82260)],
["{:.2}".format(0.71956), "{:.2}".format(0.77691), "{:.2}".format(0.77279), "{:.2}".format(0.74522),"{:.2}".format(0.74747)],
["{:.2}".format(0.84256), "{:.2}".format(0.83268), "{:.2}".format(0.84152), "{:.2}".format(0.84204),"{:.2}".format(0.83775)],
["{:.2}".format(0.71956), "{:.2}".format(0.77691), "{:.2}".format(0.77279), "{:.2}".format(0.74522),"{:.2}".format(0.74747)],
["{:.2}".format(0.80320), "{:.2}".format(0.83787), "{:.2}".format(0.83933), "{:.2}".format(0.82087),"{:.2}".format(0.82008)],
["{:.2}".format(0.71956), "{:.2}".format(0.77043), "{:.2}".format(0.76772), "{:.2}".format(0.74286),"{:.2}".format(0.74432)],
["{:.2}".format(0.83641), "{:.2}".format(0.83009), "{:.2}".format(0.83847), "{:.2}".format(0.83743),"{:.2}".format(0.83333)],
["{:.2}".format(0.71956), "{:.2}".format(0.77043), "{:.2}".format(0.76772), "{:.2}".format(0.74286),"{:.2}".format(0.74432)],
]


year = ['set1', 'set2', 'set3', 'set4', 'set5']
plt.plot(year, data[0])
plt.plot(year, data[1])
plt.plot(year, data[2])
plt.plot(year, data[3])
plt.plot(year, data[4])
plt.plot(year, data[5])
plt.plot(year, data[6])
plt.plot(year, data[7])
plt.xlabel('xx')
plt.ylabel('aa')
plt.title('bb')
plt.show()
如果我更改格式,例如:
“{.2%}”。格式(0.80443)

这就是我的结果


我想把小数点改为百分数,并把它四舍五入到小数点后两位。这就是为什么我使用
格式
-@bigben

首先,你会发现百分比格式不正确。这些值是格式化后的字符串,而不是数字

如果有这样的列表,只需将浮点值乘以100:

a = [0.80443, 0.84176, 0.84278, 0.82316, 0.82260]
data[0] = [ x * 100 for x in a ]
然后,当您绘制每个列表时,您将得到
80.443、84.176…
等值

如果要在相乘和打印后控制y轴上的范围,请设置:

plt.ylim([60100])

这将y轴限制为
60
100
之间的值

编辑:

要格式化y轴上的刻度,建议使用
matplotlib
中的
ticker
方法:

from matplotlib import pyplot as plt
import matplotlib.ticker as ticker

fig, ax = plt.subplots(figsize=(15, 7))
plt.plot(year, data[0])
plt.ylim([60, 100])
ax.get_yaxis().set_major_formatter(
    ticker.FuncFormatter(lambda x, p: "{:.2%}".format(x))
)

为什么要
.format
整理数据?我想将小数改为百分比,并将其四舍五入到小数点后两位。@BigBenBut
.format()
返回一个格式化字符串,这不是您想要的。@BigBen我为我的问题提供了更多图片