精华内容
下载资源
问答
  • 绘制图表

    2019-06-27 19:45:34
    绘制图表 开发工具与关键技术:Visual Studio 2015 作者:李德新 撰写时间:2019年6月26日 如今,在网络技术越来越发达的今天我们总是有很多的时间花费在网上,我们在网上浏览网页的时候,总是能看到各种各样的...
                                           绘制图表
    
    开发工具与关键技术:Visual Studio 2015
    作者:李德新
    撰写时间:2019年6月26日
    

    如今,在网络技术越来越发达的今天我们总是有很多的时间花费在网上,我们在网上浏览网页的时候,总是能看到各种各样的不同的图表,办事您有没有想过我们看到的这些图表到底是如何制作出来的呢?如果我们想做出来又要如何才可以把这些图表制作出来?那么我们现在就来看看这些静美的图表是如何用代码制作出来的。
    首先,我们可以利用一下网上别人封装的一些制作图表的插件,有了这些插件我们做起图表也要简单了许多,而且我们依然可以去在自定义这些图表所需要的各种不同的样式,如此我们制作页面上的图表就简单的多了。那么我们就要先引入我们所需要的插件。
    在这里插入图片描述
    第一以及第二这两个插件是用来为我们在页面布局上提供帮助的,有了这两个插件我们可以少些许许多多的多余的代码,而最后一个插件才是我们今天的主角。Echarts.min.js是网上别人封装的一个专门制作图表的一款插件。
    我们在引入插件之后,我们就是要如何在页面上去布置好存放数据表格的

    容器,只有先设置好容器存放图表,我们才可以继续下面的操作。
    在这里插入图片描述
    如图中所示,我们可以看到我创建了三个存放图表的地方,并且为他们每一个容器都声明了一个ID方便我们后面获取内容,以及存放我们制作的图表。那么我们接下来就可以去获取到我们要的id然后把它们存放到页面上的
    容器之中。
    在这里插入图片描述
    如图中所示,获取到了我们需要的这几个ID之后我们就可以去设计我们需要的图表了。那么我们就要先设计图表的标题以及其他的各种不同的样式。但是在设计我们需要的样式之前,我们需要按照Echarts.min.js插件的设计的格式去写才可以使用。
    在这里插入图片描述
    在这里插入图片描述
    如此,我们就可以自定义我们需要的标题、配置、以及各种不同的数据。而且我们还可以为这些图表设计弹出的提示框,但是我们现在这样还是不够的,我们还需要为这些容器设计一下高度让他们不被挤压而变形。
    在这里插入图片描述
    如此我们只要再次,为这些存放图表的容器设置高度即可,如此我们设计的图表才可以完美的显示出来。

    展开全文
  • 绘制图表绘制图表
  • 代码绘制图表

    2012-11-09 10:51:49
    C#代码绘制图表
  • C#绘制图表

    2017-12-15 18:06:52
    利用C#实现统计表,折线,曲线,点的显示,绘制图表
  • JavaScript绘制图表

    2015-11-27 20:01:17
    该代码为使用JavaScript绘制图表的一个范例,可以再次基础上继续编写需要的图表
  • 使用Silverlight Toolkit绘制图表 使用Silverlight Toolkit绘制图表 使用Silverlight Toolkit绘制图表 使用Silverlight Toolkit绘制图表使用Silverlight Toolkit绘制图表
  • 本篇文章主要介绍了使用Python绘制图表大全总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 声图 进行频率和时间输入,然后制作声音并绘制图表
  • 前端绘制绘制图表 数据可视 (DATA VIZ) In this article, I share all tricks of the trade how I draw professional charts every day with minimal effort. 在本文中,我分享了所有交易技巧,如何每天以最小的努力...

    前端绘制绘制图表

    数据可视 (DATA VIZ)

    In this article, I share all tricks of the trade how I draw professional charts every day with minimal effort.

    在本文中,我分享了所有交易技巧,如何每天以最小的努力绘制专业图表。

    Detailed instructions and core source code, so you can replicate the results and amend them as you please.

    详细的说明和核心源代码,因此您可以复制结果并根据需要对其进行修改。

    You can also test the ready-made example add-in to get started without writing or compiling any code, in 3 simple steps:

    您还可以通过3个简单的步骤测试现成的示例外接程序,以开始使用而无需编写或编译任何代码:

    1- Download the Excel add-in installer
    2- Activate your free account
    3- Test the Magic Button

    一键式图表 (1-click charts)

    Showing your analysis: challenging but crucial.

    显示您的分析: 具有挑战性但至关重要。

    Tired after all the hard analytical work, results are now clear to you: so why bother? Unfriendly charting tools make you want to cut this step short.

    在完成所有艰苦的分析工作之后,您现在已经清楚了结果:那么,为什么要麻烦呢? 不友好的图表工具使您希望缩短此步骤。

    Charts with 1-click, using the Magic Button of which I share the source code as well as provide a ready-to-use working example, an approach which can be replicated in any tool/software beyond Excel (used for this demo).

    一键单击图表,使用“我的魔力”按钮共享源代码,并提供一个现成的工作示例,该方法可以在Excel(此演示中使用)以外的任何工具/软件中复制。

    After you will have chosen your chart type and prepared the dataset, this post shows how-to formatting for the 9 main chart types: Line, Pie, Scatter, Bubble, Ladder, Column, Boxplot, Clustered, Bar.

    在您选择图表类型并准备了数据集之后,本文将介绍9种主要图表类型的格式:线,饼图,散点图,气泡,阶梯,列,箱形图,聚类,条形图。

    1.折线图:演示视频 (1. Line chart: demo video)

    Image for post
    Animated demo: the 5 steps of chart creation (CC with attribution)
    动画演示:图表创建的5个步骤(带有署名的CC)

    魔术按钮可在5个简单步骤中缩短图表制作时间 (Magic Button to cut charting short in 5 easy steps)

    Step 1. Select the dataset

    步骤1.选择数据集

    Image for post
    Image by author (CC with attribution)
    作者提供的图片(带有署名的抄送)

    Step 2. Insert regular Excel 2-D line chart then resize it to an approximately 2:1 ratio, which has the best readability

    步骤2.插入常规Excel 2-D折线图,然后将其调整大约2:1的 大小 ,这具有最佳的可读性

    Image for post

    Step 3. Push the Magic button

    步骤3.魔术按钮

    Image for post

    Step 4. Set the chart name by looking at the left side of the formula bar, while the chart is selected

    步骤4.在选定图表的情况下,通过查看编辑栏的左侧来设置图表名称

    Image for post

    Step 5. Fix the 5 finishing touches using appropriate User Defined Functions (UDF)

    步骤5.使用适当的用户定义函数(UDF)修复5个修饰点

    a. Legend
    b. Labels
    c. Unit of measure
    d. Title
    e. Subtitle

    绘制用户定义函数(UDF)的图表 (Charting User Defined Functions (UDF))

    To achieve full automation even if the data changes, while avoiding some specific bugs of Excel, I use 3 UDF — alternatively, you can implement these finishing touches directly within your Magic Button, but losing some freedom and consistency.

    为了即使数据发生更改也能实现完全自动化,同时避免了Excel的某些特定错误 ,我使用了3个UDF-或者,您可以直接在“魔术按钮”中实现这些最终效果,但会失去一些自由度和一致性。

    • Legend: added automatically with the right sequencing (unlike Excel that inverts it!); remove it if you so prefer

      图例:按正确的顺序自动添加(不同于将其反转的Excel!); 如果您愿意,请将其删除

    • Labels: add on the left hand side using =EvoLabelsApply()

      标签 :使用= EvoLabelsApply()在左侧添加

    • Unit of measure: trim away the ,000,000 too many zeros using =EvoChartApplyFormatCode(“Chart Name”,EvoFormatCode())

      度量单位 :使用= EvoChartApplyFormatCode(“图表名称”,EvoFormatCode())修剪掉000000个太多的零

    Image for post
    • Title/subtitle: in this case I show only a title, with the unit of measure (e.g. Millions) to match the right multiplier. You can use the same technique to set both a title (e.g. Revenues) and a subtitle (e.g. EUR, millions)

      标题/副标题 :在这种情况下,我仅显示标题,其度量单位(例如Millions )与右乘数匹配。 您可以使用相同的技术来设置标题(例如Revenues )和副标题(例如EUR,illions )

    To make the title automatically editable, link it to a cell content by selecting its shape, then entering =A1 in the formula box for example, to reference cell A1, or you can use any other cell for example in this case =Line!$K$53.

    若要使标题可自动编辑,请通过选择标题的形状将其链接到单元格内容,然后在公式框中输入= A1以引用单元格A1,或者在这种情况下也可以使用任何其他单元格= Line!$ 53加元。

    Image for post
    Image by author (CC with attribution)
    作者提供的图片(带有署名的抄送)

    2.饼图 (2. Pie chart)

    After pushing the Magic Button, to get the double labels, inside and outside, use the =evoLabelsApplyPie() function.

    按下魔术按钮后,要获取内部和外部的双标签,请使用= evoLabelsApplyPie()函数。

    Image for post
    Image by author (CC with attribution)
    作者提供的图片(带有署名的抄送)

    3.分散 (3. Scatter)

    After pushing the Magic Button, format both the X and Y axes with the apply format function e.g.

    按下魔术按钮后,使用套用格式化功能格式化X和Y轴,例如

    =EvoChartApplyFormatCode(J16,EvoFormatCode(O15),”X”)

    = EvoChartApplyFormatCode(J16,EvoFormatCode(O15),“ X”)

    to prevent all those unnecessary ,000,000,000 from crowding up the chart.

    以防止所有不必要的000,000,000挤满图表。

    Use =EvoLabelsHide() to remove overlapping labels.

    使用= EvoLabelsHide()删除重叠的标签。

    Image for post
    Image by author (CC with attribution)
    作者提供的图片(带有署名的抄送)

    4.泡泡 (4. Bubble)

    Same as the scatter chart, plus use positive/negative bubble sizes to have two different fills while using a single dataset.

    与散点图相同,此外,在使用单个数据集时,请使用正/负气泡大小来填充两个不同的填充。

    Image for post
    Image by author (CC with attribution)
    作者提供的图片(带有署名的抄送)

    5.梯子 (5. Ladder)

    Handy chart type to show price ranges; a bubble chart but with custom axis labels and vertical lines.

    方便的图表类型以显示价格范围; 气泡图,但带有自定义轴标签和垂直线。

    Image for post
    Image by author (CC with attribution)
    作者提供的图片(带有署名的抄送)

    6.专栏 (6. Column)

    Truly handy chart for business!

    真正方便的商务图表!

    Pre-sort the data for greater readability using =evoSortValue() where relevant; hide labels of data sets smaller than 6% of the chart height by formatting a supporting dataset with =EvoChartApplyFormatCode().

    在相关位置使用= evoSortValue()对数据进行预排序以提高可读性; 通过使用= EvoChartApplyFormatCode()格式化支持的数据集来隐藏小于图表高度6%的数据集的标签。

    Image for post
    Image by author (CC with attribution)
    作者提供的图片(带有署名的抄送)

    7.箱线图 (7. Boxplot)

    Regular column chart, where the base bar is hidden and the whiskers are error lines. Use to show distributions, e.g. of prices.

    常规柱形图,其中基条被隐藏,而晶须是误差线 。 用于显示价格的分布。

    Image for post
    Image by author (CC with attribution)
    作者提供的图片(带有署名的抄送)

    Note: custom error bars do not accept ‘empty’; if needed use ={0}

    注意:自定义错误栏不接受“空”; 如果需要,请使用= {0}

    Image for post
    Image by author (CC with attribution)
    作者提供的图片(带有署名的抄送)
    Image for post

    8.集群 (8. Clustered)

    Not very readable. Use this chart type rarely, please :-)

    不太可读。 很少使用此图表类型,请:-)

    Image for post
    Image by author (CC with attribution)
    作者提供的图片(带有署名的抄送)

    9.酒吧 (9. Bar)

    Use the Column chart as reference: the bar chart is a close relative!

    使用柱形图作为参考:条形图是近亲!

    Image for post
    Image by author (CC with attribution)
    作者提供的图片(带有署名的抄送)

    源代码:Magic Button(如果不进行编程,则直接跳至下一部分!) (Source code: Magic Button (skip directly to the next section if not into programming!))

    This is a Visual Basic C# / .NET project.

    这是一个Visual Basic C#/ .NET项目。

    First, this first block of code behind the ‘Magic Button’ sets core properties, then calls the appropriate sub-function for the selected chart type; see below for further details.

    首先,“魔术按钮”后面的第一段代码设置了核心属性,然后为选定的图表类型调用适当的子功能。 有关更多详细信息,请参见下文。

    public static void FormatMagicButton(Chart chart)
    {
    if (chart == null)
    {
    return;
    }// General
    chart.Parent.Placement = XlPlacement.xlMove;// ChartArea Font
    chart.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Lato";
    chart.ChartArea.Format.TextFrame2.TextRange.Font.Size = 10;
    chart.ChartArea.Font.Color = FormatColors.EvoChartFont;// Shapes Font
    foreach (Shape shape in chart.Shapes)
    {
    shape.TextFrame2.TextRange.Font.Name = "Lato";
    shape.TextFrame2.TextRange.Font.Size = 10;
    shape.TextFrame2.TextRange.Font.Fill.ForeColor.RGB =
    ColorTranslator.ToOle(FormatColors.EvoChartFont);
    shape.TextFrame2.TextRange.Font.Italic = MsoTriState.msoTrue;
    }// Title Font
    if (!chart.HasTitle)
    {
    chart.SetElement(Microsoft.Office.Core.MsoChartElementType.msoElementChartTitleAboveChart);
    }
    chart.ChartTitle.Position = XlChartElementPosition.xlChartElementPositionCustom;
    chart.ChartTitle.Left = chart.ChartTitle.Top = -3;
    chart.ChartTitle.Format.TextFrame2.TextRange.Font.Name = "Lato Black";
    chart.ChartTitle.Format.TextFrame2.TextRange.Font.Size = 12;
    chart.ChartTitle.Format.TextFrame2.TextRange.Font.Bold = MsoTriState.msoTrue;
    chart.ChartTitle.Font.Color = FormatColors.EvoChartFont;switch (chart.ChartType)
    {
    case XlChartType.xl3DBarClustered:
    case XlChartType.xl3DBarStacked:
    case XlChartType.xl3DBarStacked100:
    case XlChartType.xlBarClustered:
    case XlChartType.xlBarStacked:
    case XlChartType.xlBarStacked100:
    FormatChartAreaBase(chart);
    FormatBarChart(chart);
    break;case XlChartType.xlBubble:
    case XlChartType.xlBubble3DEffect:
    FormatPlotAreaBase(chart);
    FormatBubbleChart(chart);
    break;case XlChartType.xlColumnClustered:
    case XlChartType.xlColumnStacked:
    case XlChartType.xlColumnStacked100:
    case XlChartType.xl3DColumn:
    case XlChartType.xl3DColumnClustered:
    case XlChartType.xl3DColumnStacked:
    case XlChartType.xl3DColumnStacked100:
    FormatChartAreaBase(chart);
    FormatColumnChart(chart);
    break;case XlChartType.xlLine:
    case XlChartType.xlLineStacked:
    case XlChartType.xlLineStacked100:
    case XlChartType.xlLineMarkers:
    case XlChartType.xlLineMarkersStacked:
    case XlChartType.xlLineMarkersStacked100:
    case XlChartType.xl3DLine:
    FormatChartAreaBase(chart);
    FormatLineChart(chart);
    break;case XlChartType.xl3DPie:
    case XlChartType.xl3DPieExploded:
    case XlChartType.xlPie:
    case XlChartType.xlPieExploded:
    FormatChartAreaBase(chart);
    FormatPieChart(chart);
    break;case XlChartType.xlXYScatter:
    case XlChartType.xlXYScatterLines:
    case XlChartType.xlXYScatterLinesNoMarkers:
    case XlChartType.xlXYScatterSmooth:
    case XlChartType.xlXYScatterSmoothNoMarkers:
    FormatPlotAreaBase(chart);
    FormatScatterChart(chart);
    break;
    }

    源代码:折线图格式 (Source code: Line chart formatting)

    After the global function above, the specific code for the line chart (and any other chart type) is then relatively straightforward: scripting each chart property one line at a time, rather than applying them manually.

    在上面的全局功能之后,折线图(和任何其他图表类型)的特定代码就相对简单了:一次为每个图表属性编写一行脚本,而不是手动应用它们。

    private static void FormatLineChart(Chart chart)
    {// Axis X
    if (!chart.HasAxis[XlAxisType.xlCategory])
    {
    chart.SetElement(Microsoft.Office.Core.MsoChartElementType.msoElementPrimaryCategoryAxisShow);
    }
    var axisX = (Axis)chart.Axes(XlAxisType.xlCategory);
    axisX.TickLabels.Offset = 0;
    axisX.TickLabelPosition = XlTickLabelPosition.xlTickLabelPositionLow;
    axisX.TickLabels.Orientation = XlTickLabelOrientation.xlTickLabelOrientationHorizontal;
    axisX.MajorTickMark = XlTickMark.xlTickMarkInside;
    axisX.MinorTickMark = XlTickMark.xlTickMarkNone;
    axisX.Border.Color = FormatColors.EvoChartAxisBorder;
    axisX.Format.Line.Weight = .25f;
    axisX.Crosses = XlAxisCrosses.xlAxisCrossesMaximum;
    axisX.AxisBetweenCategories = false;
    axisX.MajorGridlines.Format.Line.Visible = MsoTriState.msoFalse;// Axis Y
    if (!chart.HasAxis[XlAxisType.xlValue])
    {
    chart.SetElement(Microsoft.Office.Core.MsoChartElementType.msoElementPrimaryValueAxisShow);
    }
    var axisY = (Axis)chart.Axes(XlAxisType.xlValue);
    axisY.TickLabels.Offset = 0;
    axisY.TickLabelPosition = XlTickLabelPosition.xlTickLabelPositionHigh;
    axisY.MajorTickMark = XlTickMark.xlTickMarkInside;
    axisY.MinorTickMark = XlTickMark.xlTickMarkNone;
    axisY.Border.Color = FormatColors.EvoChartAxisBorder;
    axisY.Format.Line.Weight = .25f;
    axisY.Crosses = XlAxisCrosses.xlAxisCrossesAutomatic;
    axisY.MajorGridlines.Format.Line.Visible = MsoTriState.msoFalse;// Series
    int seriesIndex = 0;
    var allSeries = (SeriesCollection)chart.SeriesCollection();
    var legendSeries = new List<String>();
    foreach (Series series in allSeries)
    {
    if (series.Formula.Contains($@"""{series.Name}"""))
    {
    series.Delete();
    continue;
    }
    var seriesDefinition = _seriesDefinitions[seriesIndex++ % _seriesDefinitions.Count];
    series.Format.Line.ForeColor.RGB = ColorTranslator.ToOle(seriesDefinition.Color);
    series.Format.Line.DashStyle = seriesDefinition.DashStyle;
    series.Format.Line.Weight = seriesDefinition.Weight;
    series.PlotOrder = allSeries.Count - seriesIndex + 1;
    if (legendSeries != null)
    {
    legendSeries.Add(series.Name);
    }
    }// Legend
    if (chart.HasLegend)
    {
    chart.Legend.Delete();
    }
    chart.SetElement(Microsoft.Office.Core.MsoChartElementType.msoElementLegendTop);
    chart.Legend.Left = chart.ChartArea.Width - chart.Legend.Width;
    chart.Legend.Top = 0;
    var legendHeight = chart.Legend.Height;var legends = (LegendEntries)chart.Legend.LegendEntries();
    try
    {
    int count = legends.Count;
    int i = 1;//remove legend entry from the chart
    while (count >= i)
    {
    legends.Item(i)?.Delete();
    i++;
    }
    }
    catch { }seriesIndex = 0;if (legendSeries.Any())
    {
    foreach (var name in legendSeries)
    {
    var series = allSeries.NewSeries();
    var seriesDefinition = _seriesDefinitions[seriesIndex++ % _seriesDefinitions.Count];
    series.Format.Line.ForeColor.RGB = ColorTranslator.ToOle(seriesDefinition.Color);
    series.Format.Line.DashStyle = seriesDefinition.DashStyle;
    series.Format.Line.Weight = seriesDefinition.Weight;
    series.Name = name;
    try
    {
    if (legends.Count > seriesIndex)
    {
    chart.Legend.LegendEntries(1)?.Delete();
    }
    }
    catch { }
    }
    }// PlotArea
    chart.PlotArea.Top = Math.Max(legendHeight, chart.ChartTitle.Height) + 10;
    chart.PlotArea.Height = chart.ChartArea.Height - chart.PlotArea.Top - 5;
    chart.PlotArea.Left = 30;
    chart.PlotArea.Width = chart.ChartArea.Width - chart.PlotArea.Left - 5;
    }

    奖金:准备测试的插件 (Bonus: ready-to-test add-in)

    If, like me, you just want the ready solution without having to bother with code, here are the 3 simple steps to charting with zero effort:

    如果像我一样,如果您只想使用现成的解决方案而不必去理会代码,那么这里是三个简单的步骤,可以轻松实现图表制作:

    1- Download the Excel add-in installer
    2- Activate your free account
    3- Test the Magic Button

    This comes with the Magic Button as well as 46 User Defined Functions, just start typing =evo inside any cell to get the full list.

    它带有魔术按钮以及46个用户定义函数,只需在任何单元格内开始键入= evo即可获取完整列表。

    Happy charting!

    祝您图表愉快!

    PS For more details about the rationale of each formatting choice, please review my related piece:

    附注:有关每种格式选择的原理的更多详细信息,请查看我的相关文章:

    Example results from using this approach:

    使用此方法的示例结果:

    翻译自: https://towardsdatascience.com/how-to-draw-9-professional-chart-types-with-zero-effort-c9eee6d2a9cc

    前端绘制绘制图表

    展开全文
  • Python中使用matplotlib绘制图表
  • MPAndroidChart绘制图表

    千次阅读 2015-07-13 15:46:09
    最新项目上遇到要绘制图表的功能,研究了一下,也使用了一些绘制图表的库,其中包含AChartEngine (google自带),但是goole自带的功能简单,要想绘制绚丽的图表要自己改源码。所以,这里推荐一款绘制图表的库–...

    最新项目上遇到要绘制图表的功能,研究了一下,也使用了一些绘制图表的库,其中包含AChartEngine (google自带),但是goole自带的功能简单,要想绘制绚丽的图表要自己改源码。所以,这里推荐一款绘制图表的库–MPAndroidChart。

    MPAndroidChart的源码地址:https://github.com/PhilJay/MPAndroidChart

    下面将详细介绍绘制过程,xml什么的就略过了(因为每个图就是一个控件)。

    1、饼状图PieChat

    饼状图

    /**
         * PieChat
         *
         * @param mPieChat
         */
        public void initPieChat(PieChart mPieChat, List<Map<String, Object>> list) {
    
            mPieChat.setUsePercentValues(true);//显示百分比
            mPieChat.setDescription("");
            mPieChat.setDrawHoleEnabled(true);
            mPieChat.setHoleColorTransparent(true);
    
            mPieChat.setTransparentCircleColor(Color.WHITE);
    
            mPieChat.setHoleRadius(30f);//半径
            mPieChat.setTransparentCircleRadius(32f);//半透明圆
    
            mPieChat.setDrawCenterText(false);//饼状图中间可以添加文字
    
            mPieChat.setRotationAngle(0);//初始旋转角度
            // enable rotation of the chart by touch
            mPieChat.setRotationEnabled(false);//可以手动旋转
    
            PieData data = getPieData(list);
            data.setValueFormatter(new PercentFormatter());
            data.setValueTextSize(15f);
    
            data.setValueTextColor(Color.WHITE);
            data.setDrawValues(true);
            mPieChat.setData(data);
            // undo all highlights
            mPieChat.highlightValues(null);
            mPieChat.setDrawSliceText(false);//让xValues不显示 找了好久的源码才发现
            mPieChat.invalidate();
    
            Legend mLegend = mPieChat.getLegend();  //设置比例图
            mLegend.setPosition(Legend.LegendPosition.RIGHT_OF_CHART_INSIDE);
    //      mLegend.setForm(LegendForm.LINE);  //设置比例图的形状,默认是方形
    //        mLegend.setXEntrySpace(7f);
    //        mLegend.setYEntrySpace(5f);
        }
    private PieData getPieData(List<Map<String, Object>> list) {
            ArrayList<String> xValues = new ArrayList<String>();  //xVals用来表示每个饼块上的内容
            ArrayList<Entry> yValues = new ArrayList<Entry>();  //yVals用来表示封装每个饼块的实际数据
    
            for (int i = 0; i < list.size(); i++) {
                Log.i("YUQING", "ChatUtil key=" + list.get(i).get("key").toString());
                xValues.add(list.get(i).get("key").toString());  //饼块上显示
                yValues.add(new Entry((int) list.get(i).get("count"), i));
            }
            //y轴的集合
            PieDataSet pieDataSet = new PieDataSet(yValues, null);
            pieDataSet.setSliceSpace(0f); //设置个饼状图之间的距离
    
            // 饼图颜色
            TypedArray colors = mContext.getResources().obtainTypedArray(R.array.pie_color);
            ArrayList<Integer> colorList = new ArrayList<Integer>();
            for (int i = 0; i < colors.length(); i++) {
                colorList.add(colors.getColor(i, 0));
            }
            pieDataSet.setColors(colorList);
    
    //        DisplayMetrics metrics = getResources().getDisplayMetrics();
    //        float px = 5 * (metrics.densityDpi / 160f);
    //        pieDataSet.setSelectionShift(px); // 选中态多出的长度
    
            PieData pieData = new PieData(xValues, pieDataSet);
    
            return pieData;
        }

    2、柱状图BarChat

    柱状图

    public void initBarChat(BarChart mBarChat, List<Map<String, Object>> mBarList) {
    
            mBarChat.setDrawBorders(false);  是否在折线图上添加边框
            mBarChat.setDescription("");// 数据描述
    
            // 如果没有数据的时候,会显示这个,类似ListView的EmptyView
            mBarChat.setNoDataTextDescription("You need to provide data for the chart.");
    
            // enable / disable grid background
            mBarChat.setDrawGridBackground(true); // 是否显示表格颜色
            mBarChat.setGridBackgroundColor(mContext.getResources().getColor(R.color.pic_bg)); // 表格的的颜色
    
            mBarChat.setTouchEnabled(true); // 设置是否可以触摸
    
            mBarChat.setDragEnabled(false);// 是否可以拖拽
            mBarChat.setScaleEnabled(true);// 是否可以缩放
    
            mBarChat.setPinchZoom(false);//
    
            mBarChat.setBackgroundColor(mContext.getResources().getColor(R.color.pic_bg));// 设置背景
    
    //        mBarChat.setDrawBarShadow(true);
    
            Legend mLegend = mBarChat.getLegend(); // 设置比例图标示
    //        mLegend.setForm(LegendForm.CIRCLE);// 样式
    //        mLegend.setFormSize(6f);// 字体
    //        mLegend.setTextColor(Color.BLACK);// 颜色
            mLegend.setEnabled(false);
    //      X轴设定
            XAxis xAxis = mBarChat.getXAxis();
            xAxis.setTextSize(12f);
            xAxis.setTextColor(mContext.getResources().getColor(R.color.line_xy_color));
            xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
            YAxis rightAxis = mBarChat.getAxisRight();
            rightAxis.setEnabled(false);
    
            YAxis leftAxis = mBarChat.getAxisLeft();
            leftAxis.setTextColor(mContext.getResources().getColor(R.color.line_xy_color));
            leftAxis.setTextSize(12f);
    
            mBarChat.setData(getBarData(mBarList)); // 设置数据
            mBarChat.invalidate();
        }
    private BarData getBarData(List<Map<String, Object>> mBarList) {
    
            // x轴的数据
            ArrayList<String> xValues = new ArrayList<String>();
            // y轴的数据
            ArrayList<BarEntry> yValues = new ArrayList<BarEntry>();
    
            for (int i = 0; i < mBarList.size(); i++) {
                // x轴显示的数据,这里默认使用数字下标显示
                xValues.add(mBarList.get(i).get("key").toString());
                yValues.add(new BarEntry((int) mBarList.get(i).get("count"), i));
            }
    
            // create a dataset and give it a type
            // y轴的数据集合
            BarDataSet barDataSet = new BarDataSet(yValues, "");
            barDataSet.setHighlightEnabled(false);
            barDataSet.setDrawValues(false);
            barDataSet.setColor(mContext.getResources().getColor(R.color.line_color));
    
            ArrayList<BarDataSet> barDataSets = new ArrayList<BarDataSet>();
            barDataSets.add(barDataSet); // add the datasets
            BarData barData = new BarData(xValues, barDataSets);
            return barData;
        }

    3、折线图LineChart

    折线图

     /**
         * LineChat
         *
         * @param mLineChat
         */
        public void initLineChat(LineChart mLineChat, List<Map<String, Object>> list) {
            mLineChat.setDrawBorders(false);  //是否在折线图上添加边框
            // no description text
            mLineChat.setDescription("");// 数据描述
            // 如果没有数据的时候,会显示这个,类似listview的emtpyview
            mLineChat.setNoDataTextDescription("You need to provide data for the chart.");
    
            // enable / disable grid background
            mLineChat.setDrawGridBackground(true); // 是否显示表格颜色
            mLineChat.setGridBackgroundColor(mContext.getResources().getColor(R.color.pic_bg)); // 表格的的颜色
    
            // enable touch gestures
            mLineChat.setTouchEnabled(true); // 设置是否可以触摸
    
            // enable scaling and dragging
            mLineChat.setDragEnabled(false);// 是否可以拖拽
            mLineChat.setScaleEnabled(false);// 是否可以缩放
            // if disabled, scaling can be done on x- and y-axis separately
            mLineChat.setPinchZoom(true);//
    
            mLineChat.setBackgroundColor(mContext.getResources().getColor(R.color.pic_bg));// 设置背景
    
            XAxis xAxis = mLineChat.getXAxis();
            xAxis.setTextSize(12f);
            xAxis.setTextColor(mContext.getResources().getColor(R.color.line_xy_color));
            xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
    
            YAxis rightAxis = mLineChat.getAxisRight();
            rightAxis.setEnabled(false);
    
            YAxis leftAxis = mLineChat.getAxisLeft();
            leftAxis.setTextColor(mContext.getResources().getColor(R.color.line_xy_color));
            leftAxis.setTextSize(12f);
    
            Legend l = mLineChat.getLegend();
            l.setEnabled(false);
            // add data
            mLineChat.setData(getLineData(list)); // 设置数据
            mLineChat.invalidate();
        }
     private LineData getLineData(List<Map<String, Object>> list) {
            // x轴的数据
            ArrayList<String> xValues = new ArrayList<String>();
            // y轴的数据
            ArrayList<Entry> yValues = new ArrayList<Entry>();
    
            for (int i = 0; i < list.size(); i++) {
                // x轴显示的数据,这里默认使用数字下标显示
                xValues.add(list.get(i).get("key").toString());
                yValues.add(new Entry((int) list.get(i).get("count"), i));
            }
    
            // create a dataset and give it a type
            // y轴的数据集合
            LineDataSet lineDataSet = new LineDataSet(yValues, "" /*显示在比例图上*/);
    
            //用y轴的集合来设置参数
            lineDataSet.setLineWidth(3f); // 线宽
            lineDataSet.setDrawCircles(false);
    //        lineDataSet.setCircleSize(3f);// 显示的圆形大小
            lineDataSet.setColor(mContext.getResources().getColor(R.color.line_color));// 显示颜色
    //        lineDataSet.setCircleColor(Color.WHITE);// 圆形的颜色
    //        lineDataSet.setHighLightColor(Color.WHITE); // 高亮的线的颜色
            lineDataSet.setHighlightEnabled(false);
            lineDataSet.setDrawValues(false);
            lineDataSet.setDrawFilled(true);
            lineDataSet.setFillColor(mContext.getResources().getColor(R.color.line_fill_color));
    
            ArrayList<LineDataSet> lineDataSets = new ArrayList<LineDataSet>();
            lineDataSets.add(lineDataSet); // add the datasets
    
            // create a data object with the datasets
            LineData lineData = new LineData(xValues, lineDataSets);
    
            return lineData;
        }
    展开全文
  • Highcharts图表控件是目前使用最为广泛的图表控件 ,是纯JS图表库。这篇文章主要介绍了Django Highcharts制作图表的相关资料,非常的详细,有需要的小伙伴可以来参考下
  • 解压密码:RJ4587 今天要分享的这款HTML5图表应用是一款线性图表,它主要是有SVG构造出来的,这款SVG线性图表可以用不同的颜色绘制图表的数据区域。另外,这款图表和之前分享的HTML5线性图表iGrapher 类似,只是...
  • IOS 绘制图表

    2014-08-07 20:23:37
    IOS 绘制自定义x,y轴的图表 实现 双曲线 双色柱状图
  • 9款很棒的网页绘制图表JavaScript框架脚本1.FlotFlot是基于 jQuery框架绘制图表的纯Javascript框架。它可在客户端即时绘制并生成各种图形。重要的是它使用简便(还有很多可选的设置)、吸引人的视觉 效果和交互功能...
  • 使用matplotlib绘制图表

    2020-07-29 19:05:08
    使用matplotlib绘制图表 绘制误差折线图 下图绘制的误差折现图可以定义上下误差 说明:%matplotlib inline 加上这句话之后,可以在jupyter notebook上把绘制的图显示出来,否则只能得到一个内存地址 绘制出来的图表...

    使用matplotlib绘制图表

    绘制误差折线图

    下图绘制的误差折现图可以定义上下误差

    说明:%matplotlib inline 加上这句话之后,可以在jupyter notebook上把绘制的图显示出来,否则只能得到一个内存地址

    绘制出来的图表保存示例:plt.savefig(‘D:/test.png’)

    plt.errorbar()函数:

    plt.errorbar(
        x,  # x坐标
        y,  # y坐标
        yerr=None,  # 数据误差范围
        xerr=None,  # 数据误差范围
        fmt='',    # 数据点的标记样式及相互之间连接线样式
        ecolor=None,  # 误差棒的线条颜色
        elinewidth=None,  # 误差棒的线条粗细
        capsize=None,    # 误差棒边界横杠的厚度
        capthick=None    # 误差棒边界横杠的厚度
        )
    

    例1

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = [1, 2, 3]
    y = [2.1, 2.2, 3.4]
    dy1 = [0.1, 0.2, 0.3]
    dy2 = [0.3, 0.5, 0.1]
    error = [dy1, dy2]
    plt.errorbar(x, y, yerr=error)
    plt.savefig('D:/test.png')  # 保存图片
    plt.show()
    

    输出图片:
    在这里插入图片描述

    例2

    x=np.linspace(1,10,20)
    dy=np.random.rand(20)
    y=np.sin(x)*3
    
    plt.errorbar(x,y,yerr=dy,fmt='o',ecolor='r',color='b',elinewidth=2,capsize=4)
    #fmt :   'o' ',' '.' 'x' '+' 'v' '^' '<' '>' 's' 'd' 'p'
    plt.show()
    

    输出图片:
    在这里插入图片描述

    2. 绘制散点图

    下面是绘制散点图的一个示例:

    # 需导入要用到的库文件
    import numpy as np  # 数组相关的库
    import matplotlib.pyplot as plt  # 绘图库
    
    N = 10
    x = np.random.rand(N)  # 包含10个均匀分布的随机值的横坐标数组,大小[0, 1]
    y = np.random.rand(N)  # 包含10个均匀分布的随机值的纵坐标数组
    plt.scatter(x, y, alpha=0.6)  # 绘制散点图,透明度为0.6(这样颜色浅一点,比较好看)
    plt.show()
    

    输出图片:
    在这里插入图片描述

    展开全文
  • php绘制图表

    千次阅读 2016-04-21 10:31:10
    这里我个人推荐一个 绘制图表的东西: Open Flash Chart,Dgraph  Open Flash Chart 简介:  OpenFlashChart是一款开源的以Flash和Javascript为技术基础的免费图表,用它能创建一些很有效果的报表分析图表。 ...
  • C++绘制图表

    2020-08-18 17:21:54
    五分钟学会C++高效图表绘制神器调用
  • 在一个项目中往往不少于图表绘制,而绘制图表也更能使数据呈现一个清晰明了的范畴。Echarts是一个纯Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,提供直观、生动、可交互、可高度个性化定制的数据可视...
  • 第三方Charts绘制图表四种形式Demo
  • Delphi调用Excel绘制图表一例..rar
  • VC下绘制图表的类及其演示程序,包含曲线拟合等功能
  • Python 绘制图表

    2019-03-05 21:02:39
    1.简单图表(柱状图,点线图) from matplotlib.pyplot import * x = [1,2,3,4] y = [5,4,3,2] #创建新的图表 figure() #将图表分割成2*3的表格,或者subplot(2,3,1),第三个参数为凸显标号 subplot(231) plot...
  • Matplotlib绘制图表

    千次阅读 2019-03-01 19:51:48
    Matplotlib 库功能十分强大,内容也非常多,本篇简单介绍一下各种常用图表绘制。 Matplotlib是一个Python 2D绘图库,可以生成各种硬拷贝格式和跨平台交互式环境的出版物质量数据。Matplotlib可用于Python脚本,...
  • 要想使用Matplotlib绘制图表,需要先导入绘制图表的模块pyplot,该模块提供了一种类似Matlab的绘图方式,主要用于绘制简单或复杂的图形,代码如下:         import matpl
  • Highcharts是一个制作图表的纯Javascript类库,主要特性如下: •兼容性:兼容当今所有的浏览器,包括iPhone、IE和火狐等等; •对个人用户完全免费; •纯JS,无BS; •支持大部分的图表类型:直线图,曲线图、...
  • Highcharts使用表格数据绘制图表

    千次阅读 2015-07-21 15:06:17
    Highcharts使用表格数据绘制图表
  • 如何使用Excel绘制图表

    千次阅读 2018-08-19 23:42:23
    通过如何使用Excel进行数据分析...我们按下面图片中标出的顺序来看下,在Excel中如何绘制图表。   第1步,选住要绘制图形的数据,也就是数据透视表里的数据。 第2步,点击”开始”选项卡下的“推荐的图表”...
  • npm安装ECharts 使用如下命令通过 npm 安装 ECharts ...绘制图表之前我们需要准备一个具备高宽的 DOM 容器。 <template> <div id='app'> <div id='echart' style='width: 200px; height: 200px'...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 111,975
精华内容 44,790
关键字:

如何绘制图表