Столбчатая диаграмма C# пропускает значение XValueMember, но отображает значение YValueMember

Код

              DataSet ds = new DataSet();
        con.Open();
        SqlDataAdapter adapt = new SqlDataAdapter("select top 10 p.customername, ISNULL(SUM(c.total),0) as total from table_customerpurchases as c Left join table_customers as p on p.customerid = c.cid where cid!='Default' and cid!='c10022' group by customername order by total desc", con);
        adapt.Fill(ds);
        chart1.DataSource = ds;
       
        chart1.Series["Customers"].XValueMember = "customername";
        chart1.Series["Customers"].XValueType = ChartValueType.String;
        
        chart1.Series["Customers"].YValueMembers = "total";
        chart1.Series["Customers"].YValueType = ChartValueType.Double;
        chart1.Titles.Add("Customers Purchases Chart");
        chart1.Series["Customers"].IsValueShownAsLabel = true;
        con.Close();

Изображение результата вывода столбчатой ​​диаграммы

Как вы можете видеть, когда я помещаю туда разрыв и вижу в визуализаторе набора данных; Все данные заполняются там

> Описание проблемы

Я не знаю, где проблема в том, что он показывает полосу столбца, но пропускает значение XValueMember. Также почему он не создает отдельную строку столбца для каждого «XValueMember».

2 ответа

Решение

您只需要在代码中添加以下三行代码即可:

      chart1.ChartAreas[0].AxisX.Interval = 1; //Set the X axis coordinate interval to 1
chart1.ChartAreas[0].AxisX.IntervalOffset = 1; //Set the X axis coordinate offset to 1
chart1.ChartAreas[0].AxisX.LabelStyle.IsStaggered = true; //Set whether to display staggered, for example, the time with a lot of data is divided into two rows to display

Выход:

Или вот так:

      //chart1.ChartAreas[0].AxisX.LabelStyle.IsStaggered = true;
chart1.ChartAreas[0].AxisX.LabelStyle.Angle=90//Rotate 90 degrees;

Выход:

Выход

Поскольку я хочу отобразить 10 лучших, я добавил эту строку в код вручную.

      chart1.ChartAreas["ChartArea1"].AxisX.Maximum = 10;

Но теперь я столкнулся с другой проблемой. Последняя полоса столбца на диаграмме отображается неправильно.

Как мне исправить эту проблему?

Другие вопросы по тегам