如何从图形中获取值?

时间:2018-09-29 19:34:52

标签: r graphics fitdistrplus

我做了分布拟合,正在看Q-Q-Plot,想知道是否有一种简单的方法可以从图形中获取相应的值。

private void comboCatSOP_Enter(object sender, EventArgs e)
{
                try
                {
                    string cbi  = this.comboCatSOP.GetItemText(this.comboCatSOP.SelectedItem);
                    MessageBox.Show(cbi);

                    using (SqlConnection conn = new SqlConnection(connection))
                    {
                        string CmdString = "select Category from Category";
                        comboCatSOP.Items.Clear();

                        SqlCommand cmd = new SqlCommand(CmdString, conn);
                        SqlDataAdapter sda = new SqlDataAdapter(cmd);
                        DataTable dt1 = new DataTable("Category");
                        sda.Fill(dt1);

                        foreach (DataRow dr in dt1.Rows)
                        {
                            comboCatSOP.Items.Add(dr["Category"].ToString());
                        }

                        string CmdString2 = "select p.ModelNo from Product p inner join Category c on p.CatID=c.CatID where p.CompanyID='" + txtCompanyChangeInternal + "' and c.Category='" + cbi.ToString() + "'  group by c.CatID,p.ModelNo";

                        SqlCommand cmd2 = new SqlCommand(CmdString2, conn);
                        SqlDataAdapter sda2 = new SqlDataAdapter(cmd2);
                        DataTable dt2 = new DataTable("Product");
                        sda2.Fill(dt2);

                        comboModelSOP.Items.Clear();
                        foreach (DataRow dr in dt2.Rows)
                        {
                            comboModelSOP.Items.Add(dr["ModelNo"].ToString());
                        }
                    }

                }
                catch (Exception exp)
                {
                    MessageBox.Show(exp.ToString());
                }

            }

在最后一行代码中,我收到了Q-Q-Plot,而没有计算值。但是我也对价值观感兴趣。我如何获得它们?

最好的问候 诺比

2 个答案:

答案 0 :(得分:0)

要详细说明我在上面的评论,您可以像这样在R中编辑一个函数:

qqcompValues <- edit(qqcomp)

在编辑器中,将第111行替换为以下内容:

return(data.frame(x=fittedquant, y=sdata))

请注意,以上编辑假定您使用的是默认的plotstyle =“ graphics”函数参数。

然后您可以获取QQ值,如下所示:

qqValues <- qqcompValues(lognormalfit)
qqValues
        x       y
1 1026674 1050000
2 1158492 1100000
3 1247944 1230000
4 1327616 1300000
5 1407939 1450000
6 1497825 1459785
7 1613479 1654000
8 1820639 1888000

答案 1 :(得分:0)

1具有使用qqcomp生成图的选项:这种类型的图返回带有数据的对象。因此,您可以使用

获取图和数据
ggplot2

然后可以使用

从图对象中获取相关数据
plotData <- qqcomp(lognormalfit, plotstyle = "ggplot")