实际上,我正在尝试用python绘制密度图。我希望范围为-1到1,但是我知道我的数据集中没有超过-0.6和0.6的值。但是有没有什么方法可以让我把-0.6和0.6之外的所有值都画成零呢。简言之,我想扩大我的情节范围,使其一致
到目前为止,我正在使用以下代码:
import pandas as pd
import matplotlib.pyplot as plt
#import seaborn as sns
data_Pre1 = pd.read_csv("new errors.csv")
for s in data_Pre1.columns:
data_Pre1[s].plot(kind='density', sharey = True)
#plt.title("Disk Galaxies", fontsize = 18)
plt.xlabel("$E_i$", fontsize = 40)
plt.ylabel('Density', fontsize = 40)
plt.xlim(-1,1)
plt.legend(fontsize =25)
plt.xticks(size = 15)
plt.yticks(size = 15)
plt.show()
我的解决方案基于将ind参数传递到绘图。 它为估计的PDF指定评估点。 作为点数,我选择了700,但您可以根据自己的意愿进行更改, e、 g.获得更平滑的曲线。 为了保持一致性,只将相同的边界值传递给plt.xlim(…)
因此,将代码的相应行更改为:
另一个可能的修正是,不是在列上显式循环 对于数据帧,您可以调用整个数据帧的绘图:
编辑
用ind指定的评估点不需要均匀分布 在整个x轴“通缉”范围内
如果您确定x轴的两个“极限”由 绘图功能(您编写了-0.6和0.6),您可以生成ind 仅作为此范围内密集间隔的点,,然后:
因此,您可以将代码更改为:
相关问题 更多 >
编程相关推荐