吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2163|回复: 10
收起左侧

[求助] python 选择不连续的单元格画图表,

[复制链接]
ymhld 发表于 2020-6-18 20:24
本帖最后由 ymhld 于 2020-6-18 20:26 编辑

[Python] 纯文本查看 复制代码
"""


import openpyxl
from openpyxl import Workbook, load_workbook
from openpyxl.chart import (AreaChart,           #AreaChart面积图表(2D区域图)
                            AreaChart3D,         #AreaChart面积图表(3D区域图)
                            
                            BarChart,            #BarChart条形图/柱形图/成交量图
                            
                            BubbleChart,         #BubbleChart气泡图
                            LineChart,           #LineChart折线图
                            LineChart3D,         #LineChart3D折线图
                            ScatterChart,        #ScatterChart散点图
                            PieChart,            #PieChart饼图
                            PieChart3D,          #PieChart3D饼图3D
                            ProjectedPieChart,   #ProjectedPieChart投影饼图
                            
                            StockChart,          #StockChart股票图
                            
                            Reference,           #用来对单元范围进行标准化引用
                            Series)              #用来方便创建图表数据系列
from copy import deepcopy                        #深层复制
from openpyxl.chart.axis import DateAxis         #时间轴
from openpyxl.chart.series import DataPoint      #
from openpyxl.chart.layout import (Layout,       #布局
                                   ManualLayout  #手动布局
                                   )




wb = Workbook()
wb_filename = r'openpyxl_chart_demos_case1.xlsx'


ws_tbbj = wb.create_sheet('图表布局', 0)
rows = [
        ['Size', 'Batch 1', 'Batch 2'],
        [2, 40, 30],
        [3, 40, 25],
        [4, 50, 30],
        [5, 30, 25],
        [6, 25, 35],
        [7, 20, 40]
       ]
for row in rows:
    ws_tbbj.append(row)

ch1 = ScatterChart()
xvalues = Reference(ws_tbbj, min_col=1, min_row=2, max_row=7)
for i in range(2,4):
    values = Reference(ws_tbbj, min_col=i, min_row=1, max_row=7)
    series = Series(values, xvalues, title_from_data=True)
    ch1.series.append(series)

#散点图表1
ch1.title = 'Default layout'
ch1.style = 13
ch1.x_axis.title = 'Size'
ch1.y_axis.title = 'Percentage'
ch1.legend.position = 'r'          #设置图例的位置:r,l,t,b,tr,分别代表:右、左、顶、底、右上。
ws_tbbj.add_chart(ch1, 'B10')


wb.save(wb_filename)



如上所示,能画出散点图,我的问题是:如何能在选择某列不连续的行,如只画出第2列2、3、5行的数据图
image.png

如下图这样的
image.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

geniusrot 发表于 2020-6-18 20:42
爬虫,有界面的?
 楼主| ymhld 发表于 2020-6-18 20:42
yeyaowen 发表于 2020-6-18 20:53
 楼主| ymhld 发表于 2020-6-20 08:48
看来大佬 们都不用pandas
wilison1992 发表于 2020-6-20 18:57
本帖最后由 wilison1992 于 2020-6-20 18:58 编辑

[Python] 纯文本查看 复制代码
df.loc[[1,2,4], "第二列"]
df.loc[[1,2,4], :] 



 楼主| ymhld 发表于 2020-6-20 19:04

怎么加到图表里呢?
wilison1992 发表于 2020-6-20 19:15
本帖最后由 wilison1992 于 2020-6-20 19:18 编辑
ymhld 发表于 2020-6-20 19:04
怎么加到图表里呢?

[Python] 纯文本查看 复制代码
import numpy as np
row = np.matrix(rows)
row[[1,2,3,5], :]


你这个是要改rows 那个变量吧?

也没有dataframe,不用pandas动手。。。
 楼主| ymhld 发表于 2020-6-20 20:29
wilison1992 发表于 2020-6-20 19:15
[mw_shl_code=python,true]import numpy as np
row = np.matrix(rows)
row[[1,2,3,5], :]

不是,是要在
for i in range(2,4):
    values = Reference(ws_tbbj, min_col=i, min_row=1, max_row=7)
    series = Series(values, xvalues, title_from_data=True)
    ch1.series.append(series)

改变选择不连续的数据,让数据显示到图表
wilison1992 发表于 2020-6-20 21:33
ymhld 发表于 2020-6-20 20:29
不是,是要在
for i in range(2,4):
    values = Reference(ws_tbbj, min_col=i, min_row=1, max_row= ...

[Python] 纯文本查看 复制代码
for i in [1,3,4]:
    values = Reference(ws_tbbj, min_col=2, min_row=i, max_row=i)
    series = Series(values, xvalues, title_from_data=True)
    ch1.series.append(series)


没接触过这个包,试试这么写有没有用吧。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-15 20:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表